我正在制作一个Chrome扩展程序,其中涉及在新标签页上放置文本输入,并在加载新标签页时立即将焦点放在该输入文本上。在无法使用传统方法(例如focus()
)获得关注之后,我偶然发现了这个问题:
Chrome 27:新的“标签页”扩展程序无法从Omnibox吸引焦点
其中指出Chrome现在已经做到了这一点,这样您就无法在新标签页上窃取多功能框焦点。鉴于Chrome浏览器可以很好地将焦点放在不是新标签页的任何网站上,我一直在尝试提出解决方法,但没有什么是真正令人满意的。
我试过了:
让新的标签页立即重定向到本地存储的HTML文件,但这仍然无法获得焦点,因为重定向时页面从未具有焦点。
在内容脚本中覆盖ctrl + t和cmd + t,以使用本地存储的HTML文件的内容打开一个新选项卡。这工作正常,但似乎无法覆盖cmd + t,因此Mac用户将被迫使用ctrl + t。另外,某些站点(例如OneNote在线编辑器)会接管ctrl + t,因此它并非在每个页面上都有效。
远程托管页面并让新的标签页重定向到它(太慢了)。
建议用户在打开新标签页时按两次标签页以专注于输入文本:)
是否有人对您如何解决此限制有其他建议?这对我的扩展至关重要。
谢谢!
您好,我与您联系的问题!
在“新标签页”上,包括以下JavaScript:
chrome.tabs.create({ url: chrome.extension.getURL("foo.html") });
window.close();
这将创建一个“普通”选项卡,然后关闭“新建选项卡”页面。然后,您可以focus()
在常规选项卡上输入框。
这就是我为Fauxbar扩展所做的。单击Chrome的“新建选项卡”按钮时,它会稍微延迟一点(就输入框变为焦点而言需要多长时间),但是我认为这比必须按Tab键要好。
您也可以实施chrome.commands创建键盘快捷方式,用户可以在chrome:// extensions>键盘快捷方式下对其进行修改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句