diff options
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 19 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p.h | 1 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 1 | ||||
-rw-r--r-- | src/webengine/doc/src/qquickwebengineview_lgpl.qdoc | 14 | ||||
-rw-r--r-- | tests/auto/quick/publicapi/tst_publicapi.cpp | 2 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/TestWebEngineView.qml | 2 |
6 files changed, 27 insertions, 12 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index f4881e8a5..2678832a7 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -584,6 +584,16 @@ bool QQuickWebEngineView::canGoForward() const return d->adapter->canGoForward(); } +void QQuickWebEngineView::runJavaScript(const QString &script, const QJSValue &callback) +{ + Q_D(QQuickWebEngineView); + if (!callback.isUndefined()) { + quint64 requestId = d_ptr->adapter->runJavaScriptCallbackResult(script); + d->m_callbacks.insert(requestId, callback); + } else + d->adapter->runJavaScript(script); +} + QQuickWebEngineViewExperimental *QQuickWebEngineView::experimental() const { Q_D(const QQuickWebEngineView); @@ -627,15 +637,6 @@ QQmlComponent *QQuickWebEngineViewExperimental::extraContextMenuEntriesComponent return d_ptr->contextMenuExtraItems; } -void QQuickWebEngineViewExperimental::runJavaScript(const QString &script, const QJSValue &callback) -{ - if (!callback.isUndefined()) { - quint64 requestId = d_ptr->adapter->runJavaScriptCallbackResult(script); - d_ptr->m_callbacks.insert(requestId, callback); - } else - d_ptr->adapter->runJavaScript(script); -} - QQuickWebEngineHistory *QQuickWebEngineViewExperimental::navigationHistory() const { return d_ptr->m_history.data(); diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index 59349954f..c74ae82fc 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -132,6 +132,7 @@ public: }; public Q_SLOTS: + void runJavaScript(const QString&, const QJSValue & = QJSValue()); void loadHtml(const QString &html, const QUrl &baseUrl = QUrl()); void goBack(); void goForward(); diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 89d67bcd8..280133856 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -107,7 +107,6 @@ public: public Q_SLOTS: void goBackTo(int index); void goForwardTo(int index); - void runJavaScript(const QString&, const QJSValue & = QJSValue()); void grantFeaturePermission(const QUrl &securityOrigin, Feature, bool granted); Q_SIGNALS: diff --git a/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc b/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc index 2f6ba7f0e..ac88729fc 100644 --- a/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc +++ b/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc @@ -181,6 +181,20 @@ \sa WebEngineView::url */ + +/*! + \qmlmethod void WebEngineView::runJavaScript(string script, variant callback) + \brief Runs the specified \a script in the content of the web view. + + In case a callback function is provided it will be invoked after the script + finished running. + + \code + runJavaScript("document.title", function(result) { console.log(result); }); + \endcode + +*/ + /*! \qmlsignal WebEngineView::onLoadingChanged(loadRequest) diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp index ad54bd12e..2f8644d48 100644 --- a/tests/auto/quick/publicapi/tst_publicapi.cpp +++ b/tests/auto/quick/publicapi/tst_publicapi.cpp @@ -105,6 +105,8 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.iconChanged() --> void" << "QQuickWebEngineView.linkHovered(QUrl) --> void" << "QQuickWebEngineView.navigationRequested(QQuickWebEngineNavigationRequest*) --> void" + << "QQuickWebEngineView.runJavaScript(QString,QJSValue) --> void" + << "QQuickWebEngineView.runJavaScript(QString) --> void" << "QQuickWebEngineView.loadHtml(QString,QUrl) --> void" << "QQuickWebEngineView.loadHtml(QString) --> void" << "QQuickWebEngineView.goBack() --> void" diff --git a/tests/auto/quick/qmltests/data/TestWebEngineView.qml b/tests/auto/quick/qmltests/data/TestWebEngineView.qml index 5cbb2c899..dd05aea8b 100644 --- a/tests/auto/quick/qmltests/data/TestWebEngineView.qml +++ b/tests/auto/quick/qmltests/data/TestWebEngineView.qml @@ -79,8 +79,6 @@ WebEngineView { return predicate() } - function runJavaScript(script, callback) { experimental.runJavaScript(script, callback); } - TestResult { id: testResult } onLoadingChanged: { |