Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在新标签页的Chrome扩展中从omnibox中窃取焦点?_Javascript_Google Chrome_Google Chrome Extension_Focus_Omnibox - Fatal编程技术网

Javascript 如何在新标签页的Chrome扩展中从omnibox中窃取焦点?

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文件,但这仍然不能提供焦点,因为页面在重定向时从来没有焦点 重写内容

我正在做一个Chrome扩展,包括在新的标签页上输入文本,并在新标签页加载时立即将焦点放在输入文本上。在使用传统方法(例如,
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“它不会像以前一样是空白的