【发布时间】:2015-10-05 11:00:48
【问题描述】:
我正在开发一个 Chrome 扩展程序,它的内容脚本会在指定操作上在网页中注入一堆元素,包括文本类型的输入元素。
问题在于,在像 Facebook 主页这样的网页上,它监听键盘输入(例如,P),扩展的输入元素失去焦点,这进入 Facebook 的“你在想什么” ?” P 部分。
我尝试以编程方式将焦点重新返回到输入元素,虽然这似乎部分有效,因为它会将焦点从“你在想什么?”部分,它仍然不会将'P' 写入文本字段。
有没有办法解决这个问题?
更新#0:我尝试重新获得焦点的代码就这么简单:
searchBar.onblur = searchBar.focus;
更新 #1: 我的输入元素位于影子 DOM 中。显然,当它不是影子 DOM 的一部分时,该元素不会失去焦点。关于如何让它与 shadow DOM 一起工作的任何想法?
【问题讨论】:
-
您能否向我们展示您如何尝试重新获得焦点的代码?
-
也许你在函数的事件中有一个 preventDefault 或 return 。分享您的代码,我们不是巫师或女巫。
-
@Luke 添加了代码。
-
为什么不监听整个文档的键盘事件?
-
@Luke 我其实是。我在
$(document)上使用jQuery 的keydown。
标签: javascript input google-chrome-extension