Как использовать statusChanged в WebView (QtQuick 2.0 и QtWebKit 3)?
В QtQuick 1.0 и QtWebKit 1.0 я мог сделать onLoadFinished для выполнения функции после того, как страница была готова. Как это сделать в версиях 2 и 3 соответственно?
В docuements есть statusChanged. Я не понимаю, как им пользоваться.
Ранее у меня было:
import QtQuick 2.0
import QtWebKit 3.0
WebView {
width: 700
height: 800
url:"http://www.yahoo.com"
settings.developerExtrasEnabled : true
id: webView
objectName: "myWebView"
onLoadFinished: evaluateJavaScript("window.setTimeout('window.location.reload()',5000);")
}
Но это показывает ошибку:
Невозможно присвоить несуществующему свойству "onLoadFinished"
1 ответ:
Для проверки точного состояния необходимо использовать объект
onLoadingChangedsignal и loadRequest: http://qt-project.org/doc/qt-5.0/qtwebkit/qml-qtwebkit3-webview.html#onLoadingChanged-signalimport 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 доступны различные параметры только для чтения:
- url: расположение загружаемого ресурса.
- состояние: отражает одно из трех состояний нагрузки: LoadStartedStatus, LoadSucceededStatus, или LoadFailedStatus. Смотрите WebView:: LoadStatus.
- errorString: описание ошибки загрузки.
- errorCode: код ошибки HTTP.
- errorDomain: высокоуровневые типы ошибок, один из NetworkErrorDomain, HttpErrorDomain, InternalErrorDomain, DownloadErrorDomain или NoErrorDomain. См. WebView:: ErrorDomain.
Comments