ich versuche mich gerade zum ersten Mal am webkit. Soweit so gut.
Letztlich will ich eine Webseite einbetten auf der man ganz normal surfen kann.
Um allerdings bestimmte Links abzufangen hab ich die LinkDelegationPolicy auf DelegateAllLinks gesetzt. Dem Verhalten nach wird der Linkaufruf dann komplett abgefangen und hat auf der Webseite selbst keine Auswirkung mehr. Da ich aber nur bei bestimmten Links dieses Verhalten haben will, ruf ich für die anderen einfach ein webview->setUrl(<url die ich vom linkClicked-Signal erhalte>). Das funktioniert auch, allerdings lädt die Seite komplett neu, dass heißt ich hab für einen Bruchteil eine komplett weiße Seite.
Das ganze ist nur sobald ich die Links abfange. Ohne die Policy hab ich ein normales Surfverhalten.
Meine Frage ist nun, ob es einen anderen Weg dafür gibt auf bestimmte Links zu reagieren, ohne dass die Seite komplett neu gerendert wird.
Vielleicht versteh ich komplett die Logik falsch. Oder bild ich mir das ganze nur ein?
Vielleicht weiß jemand Rat.
Danke im Voraus.
jerry42
Linux, Qt 4.8.2
Code
Im Konstruktor des MainWindow
Code: Alles auswählen
ui->webView->setUrl(QUrl("http://spiegel.de"));
ui->webView->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
Code: Alles auswählen
if(url.path()=="/bla") {
...
} else {
ui->webView->setUrl(url);
}