检测输入字段的键盘焦点
Detect keyboard focus for INPUT fields
我有一款应用程序已在全球范围内使用多年,需要更新。它监视击键,然后将其转换为动作(打开 file/folder/document 等)或替换用户定义的文本。它不是一个键盘记录器,请不要提出其他建议。
目前它在 Windows 上使用 UIAccessibility
来检测密码字段,然后自动禁用自身。
我们正在尝试为浏览器实现自动禁用。
使用网络扩展我有几个问题。
1) 如何检测 INPUT type='password'
何时获得键盘焦点?
2) 如何调用 DLL 或向我们的应用程序发送消息? (我已经看到使用 Native messaging
的可能性,但不确定这是最好的还是正确的方法。)
谢谢
回答您的问题:
1) 您需要为每个页面添加一个内容脚本。在 manifest.json 中添加:
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["contentscript-password.js"],
"run_at": "document_start"
}
],
完成后,您需要枚举所有类型为密码的输入 (getAttribute("type") == "password").
在每次输入密码时,您都会添加一个 "change" 事件侦听器 - https://developer.mozilla.org/en-US/docs/Web/Events/change
在该事件侦听器中,您向后台脚本发送一条消息,该脚本又可以通过本机消息传递与您编写的某些外部软件进行通信。
2) 是的,本地消息传递是可行的方法。由于我还没有使用它的经验,你必须自己找出它是如何工作的。这里有关于它的文档:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging
我有一款应用程序已在全球范围内使用多年,需要更新。它监视击键,然后将其转换为动作(打开 file/folder/document 等)或替换用户定义的文本。它不是一个键盘记录器,请不要提出其他建议。
目前它在 Windows 上使用 UIAccessibility
来检测密码字段,然后自动禁用自身。
我们正在尝试为浏览器实现自动禁用。
使用网络扩展我有几个问题。
1) 如何检测 INPUT type='password'
何时获得键盘焦点?
2) 如何调用 DLL 或向我们的应用程序发送消息? (我已经看到使用 Native messaging
的可能性,但不确定这是最好的还是正确的方法。)
谢谢
回答您的问题:
1) 您需要为每个页面添加一个内容脚本。在 manifest.json 中添加:
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["contentscript-password.js"],
"run_at": "document_start"
}
],
完成后,您需要枚举所有类型为密码的输入 (getAttribute("type") == "password").
在每次输入密码时,您都会添加一个 "change" 事件侦听器 - https://developer.mozilla.org/en-US/docs/Web/Events/change
在该事件侦听器中,您向后台脚本发送一条消息,该脚本又可以通过本机消息传递与您编写的某些外部软件进行通信。
2) 是的,本地消息传递是可行的方法。由于我还没有使用它的经验,你必须自己找出它是如何工作的。这里有关于它的文档:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging