使用qml键盘处理网页的文本元素
Handling text elements of web pages using qml keyboard
我正在使用Qt Web Kit 1.0打开网页。我有一个可用的键盘,用qml编写。我想用这个键盘将文本填充到HTML页面的文本框中。
比如说,我打开了gmail.com。现在,我想填写用户名和密码。但当我点击网页的这个文本元素时,我应该处理什么事件来拿出我的键盘供用户使用?我将把键盘生成的文本发送到哪里,以便将其设置到该页面的用户名字段中?
您可以通过评估WebView
:中的一些自定义javascript代码来更改文本字段值
webViewId.evaluateJavaScript("document.getElementById('textInputId').value = '" + yourValueString + "'")
此处提供文档。
编辑:对于键盘激活,您可以参考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 + "'")
}
}
相关文章:
- 如何在浏览器中选择所有*renderable*文本元素
- 如何使用RaphaelJS将文本元素约束在正方形中
- 使用d3.js删除svg文本元素
- 替换动态生成的文本元素
- Protractor测试:如何设置登录表单中文本元素的值
- 如何获取与提交表单上所选复选框相同行的文本元素
- SVG文本锚点设置使文本元素移动
- Svg文本元素被另一个Svg元素重叠
- Imacros替换文本元素
- Windows 8 上的 Safari 5 反转 SVG 上的所有文本元素
- 运行 PHP 代码以根据文本元素的值从数据库中获取值
- 我想要输入文本元素中的实时更改事件
- 如何使用 jQuery 忽略文本元素上的特定字符
- RaphaelJS中的文本元素不会在触摸设备上拖动
- d3 - 旋转数组中的文本元素
- 如何通过单击复选框将文本元素从输入复制到另一个输入
- .text() 给出元素中的所有文本元素
- 在函数内调用对象文本元素
- 移动文本元素与弧拉斐尔JS
- 编辑文本元素时,将重置后端用户设置