3

QtQuick1.0およびQtWebKit1.0では、ページの準備ができた後、onLoadFinishedを実行して関数を実行できました。それぞれバージョン2と3でそれを行う方法は?

ドキュメントに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」に割り当てることはできません

4

1 に答える 1

4

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では、さまざまな読み取り専用パラメーターを使用できます。

  • url:ロードしているリソースの場所。
  • status:LoadStartedStatus、LoadSucceededStatus、またはLoadFailedStatusの3つの負荷状態のいずれかを反映します。WebView::LoadStatusを参照してください。
  • errorString:ロードエラーの説明。
  • errorCode:HTTPエラーコード。
  • errorDomain:高レベルのエラータイプ。NetworkErrorDomain、HttpErrorDomain、InternalErrorDomain、DownloadErrorDomain、またはNoErrorDomainのいずれか。WebView::ErrorDomainを参照してください。
于 2012-12-27T22:58:32.573 に答える