В QtQuick 1.0 и QtWebKit 1.0 я мог сделать onLoadFinished для выполнения функции после того, как страница была готова. Как это сделать в версиях 2 и 3 соответственно?
Есть статус поменялся в документах. Я не понимаю, как его использовать.
Ранее у меня было:
import QtQuick 2.0
import QtWebKit 3.0
WebView {
width: 700
height: 800
url:"http://www.yahoo.com"settings.developerExtrasEnabled : trueid: webView
objectName: "myWebView"onLoadFinished: evaluateJavaScript("window.setTimeout('window.location.reload()',5000);")
}
но это показывает ошибку:
Невозможно присвоить несуществующему свойству «onLoadFinished»
Вы должны использовать onLoadingChanged
Объект signal и loadRequest для проверки точного статуса:
http://qt-project.org/doc/qt-5.0/qtwebkit/qml-qtwebkit3-webview.html#onLoadingChanged-signal
import QtQuick 2.0
import QtWebKit 3.0
WebView {
width: 700
height: 800
url:"http://google.com"
id: webView
objectName: "myWebView"
onLoadingChanged: {
console.log("onLoadingChanged: status=" + loadRequest.status);
if (loadRequest.status == WebView.LoadStartedStatus)
console.log("Loading started...");
if (loadRequest.status == WebView.LoadFailedStatus) {
console.log("Load failed! Error code: " + loadRequest.errorCode);
if (loadRequest.errorCode === NetworkReply.OperationCanceledError)
console.log("Load cancelled by user");
}
if (loadRequest.status == WebView.LoadSucceededStatus)
console.log("Page loaded!");
}
}
onLoadingChanged
Сигнал возникает, когда любая загрузка страницы начинается, заканчивается или заканчивается неудачей. Различные параметры только для чтения доступны в loadRequest:
Других решений пока нет …