我正在使用 Qt Web Kit 1.0 打开网页。我有一个可用的键盘,用 qml 编写。我想使用这个键盘将文本填充到 HTML 页面的文本框中。
假设,我打开了 gmail.com。现在,我要填写用户名和密码。但是,当我单击网页的此文本元素时,我应该处理什么事件来调出键盘供用户使用?我到底要将键盘生成的文本发送到哪里,以便将其设置到该页面的用户名字段中?
最佳答案
您可以通过评估 WebView
中的一些自定义 JavaScript 代码来更改文本字段值:
webViewId.evaluateJavaScript("document.getElementById('textInputId').value = '" + yourValueString + "'")
文档 here .
编辑:
键盘激活可以引用javaScriptWindowObjects属性:您可以激活它,例如,在正文 onload
事件中,或在文本字段 onfocus
事件中。
编辑2: 我添加一个简单的例子来解释我想说的:
我假设您有一个名为 Keyboard
的 QML 自定义项目,并且该项目有一个在按下按键时调用的信号 onKeyPress
。
你的代码应该是这样的:
WebView {
id: webViewId
javaScriptWindowObjects: QtObject {
WebView.windowObjectName: "qml"
function showKeyboard {
keyboardId.opacity = 1;
}
}
onLoadFinished: {
evaluateJavaScript("document.getElementById('textInputId').onfocus = window.qml.showKeyboard;")
}
}
Keyboard {
id: keyboardId
opacity: 0
onKeyPress: {
webViewId.evaluateJavaScript("document.getElementById('textInputId').value += '" + keyValue + "'")
}
}
关于javascript - 使用 qml 键盘处理网页的文本元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9341721/