Javascript 如何在新标签页的Chrome扩展中从omnibox中窃取焦点?
我正在做一个Chrome扩展,包括在新的标签页上输入文本,并在新标签页加载时立即将焦点放在输入文本上。在使用传统方法(例如,Javascript 如何在新标签页的Chrome扩展中从omnibox中窃取焦点?,javascript,google-chrome,google-chrome-extension,focus,omnibox,Javascript,Google Chrome,Google Chrome Extension,Focus,Omnibox,我正在做一个Chrome扩展,包括在新的标签页上输入文本,并在新标签页加载时立即将焦点放在输入文本上。在使用传统方法(例如,focus())无法获得焦点后,我偶然发现了这个问题: 这说明Chrome现在已经做到了,这样你就不会在新的标签页上窃取omnibox焦点。考虑到Chrome可以将焦点放在任何不是新标签页的站点上,我一直在尝试解决方法,但没有什么是真正令人满意的 我试过: 让新的选项卡页面立即重定向到本地存储的HTML文件,但这仍然不能提供焦点,因为页面在重定向时从来没有焦点 重写内容
focus()
)无法获得焦点后,我偶然发现了这个问题:
这说明Chrome现在已经做到了,这样你就不会在新的标签页上窃取omnibox焦点。考虑到Chrome可以将焦点放在任何不是新标签页的站点上,我一直在尝试解决方法,但没有什么是真正令人满意的
我试过:
- 让新的选项卡页面立即重定向到本地存储的HTML文件,但这仍然不能提供焦点,因为页面在重定向时从来没有焦点
- 重写内容脚本中的ctrl+t和cmd+t,以打开包含本地存储的HTML文件内容的新选项卡。这很好,只是看起来你不能覆盖cmd+t,所以Mac用户将被迫使用ctrl+t。此外,某些站点(例如OneNote online editor)会接管ctrl+t,因此它不能在每个页面上工作
- 远程托管页面并将新选项卡页面重定向到该页面(速度太慢)
- 建议用户在打开新选项卡时按tab键两次以关注输入文本:)
谢谢 您好,我的问题链接到您了 在新选项卡页面上,包括以下JavaScript:
chrome.tabs.create({ url: chrome.extension.getURL("foo.html") });
window.close();
这将创建一个“普通”选项卡,然后关闭新选项卡页面。然后可以focus()
在“普通”选项卡上选择输入框
这就是我为我的朋友所做的。当点击Chrome的新标签按钮时,它会增加一点延迟(就你的输入框聚焦所需的时间而言),但我认为这比按标签要好
您还可以实现创建用户可以在其下修改自己的键盘快捷键chrome://extensions >键盘快捷键。太完美了!非常感谢你!我甚至不知道chrome.commands。那看起来很有用!请注意,您最终会看到地址栏显示如下:“chrome”-extension:///html/page.html“它不会像以前一样是空白的