Я работаю в браузере с одной вкладкой в Qt и столкнулся с проблемой:
Ссылки в Интернете, которые ведут на внешние веб-сайты, открываются в новой вкладке (с помощью taget = '_ blank'). Однако, поскольку в моем браузере есть только одна вкладка, эти ссылки просто неактивны.
Я полагаю, что можно заставить ссылки открываться на одной вкладке, добавив JavaScript (QWebFrame :: eveluateJavaScript), что кажется неэффективным решением.
Есть ли в Qt собственный способ заставить все ссылки открываться в одной вкладке / окне?
Edit:
Я придумал собственный способ, заново реализовав loadFinished (bool):
void MyBrowser::loadFinished(bool ok) {
if (!ok) {
return;
}
QWebFrame* frame = webView->page()->mainFrame();
if (frame!=NULL) {
QWebElementCollection collection = frame->findAllElements("a[target=_blank]");
foreach (QWebElement element, collection) {
element.setAttribute("target", "_self");
}
}
}
Если есть еще лучший способ, я буду рад это увидеть.