工作环境:Windows 7 64位,QT 5.8 64位,编译器:VS2015 64位。
使用 WebEngineView 我正在加载 HTML 页面,HTML 具有脚本功能
function OnClick()
{
document.getElementById('txtName').value = "10";
}
但是使用 webEngine.runJavaScript("document.OnClick", function(result) { console.log("Text box value set to 10."); });
它未能执行功能。根据我的示例,它应该将文本框值设置为 10。
main.qml 代码:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import QtWebEngine 1.4
ApplicationWindow {
id: mainWindow
width: 1024
height: 550
visible: true
title: qsTr("Render Web Pages")
WebEngineView {
id: webEngine
anchors.fill: parent
url: "qrc:/Page1.html"
settings.javascriptCanAccessClipboard: true
settings.javascriptCanOpenWindows : true
settings.javascriptEnabled: true
settings.pluginsEnabled: true
settings.autoLoadImages: true
onLoadingChanged: {
switch(loadRequest.status){
case WebEngineLoadRequest.LoadStartedStatus:
console.log("LoadStartedStatus");
webEngine.runJavaScript("document.OnClick", function(result) { console.log("SW->Script Runs"); });
break;
}
}
}
}
HTML页面代码:
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function OnClick()
{
document.getElementById('txtName').value = "10";
}
</script>
</head>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
<input type="text" id="txtName"/>
<a href="#" onclick="OnClick()">Click me</a>
</body>
</html>
任何线索为什么它未能将文本框中的值设置为 10 ?
我的 git代码在这里。