Chrome 扩展:打开新标签页时不会失去弹出焦点
Chrome Extension: Open new tab without losing popup focus
我有一个简单的研究列表 links Chrome 分机:
<a href="http://www.example1.com" target="_blank">Research Link 1</a>
<a href="http://www.example2.com" target="_blank">Research Link 2</a>
<a href="http://www.example3.com" target="_blank">Research Link 3</a>
在任何网页上,我都可以按住 Ctrl 键并单击全部三个 link,在后台打开新标签页。但是,Chrome 扩展弹出窗口似乎并非如此。如果您按住 Ctrl 键并单击 link,该扩展程序会关闭弹出窗口,这会阻止您在任何时候单击多个 link。
我已经尝试过点击 chrome.tabs.create 方法,这在其他几篇文章中有所描述,但这似乎与点击 target="_blank" 类似,因为它只是打开一个带有焦点的新标签。
chrome.tabs.create({url: 'http://www.google.com'});
有没有什么方法可以在没有焦点的情况下打开一个新选项卡(ctrl+单击),同时仍然允许扩展弹出窗口在当前选项卡中保持可见,以便用户可以单击第二个、第三个或第四个 link?这样用户就不必多次重新运行扩展程序,而这需要时间,因为它必须重新验证和查询数据。
是的,有an option for create
:
chrome.tabs.create({url: 'http://www.google.com', active: false});
我完全按照您的描述在我的一个扩展程序中使用它。
虽然已接受的答案有效,但我最终还是这样做了,以便在Chrome 扩展 - 使用 jQuery.
<a class="ctrllink" style="cursor: pointer;" url="http://www.example1.com">Research Link 1</a>
<a class="ctrllink" style="cursor: pointer;" url="http://www.example2.com">Research Link 2</a>
<a class="ctrllink" style="cursor: pointer;" url="http://www.example3.com">Research Link 3</a>
我使用了 <a>
标签以保持默认的超链接样式(颜色、悬停下划线等)但删除了 href。由于没有href,需要在元素中定义光标样式或者class.
全局变量:
var tabplacement = 0;
Tabplacement 是为了模拟 Chrome 打开标签的方式,从上次创建的开始递增。
$(function () {
$('.ctrllink').on('click', function (event) {
var ctrlpressed = (event.ctrlKey || event.metaKey);
var url = $(this).attr('url');
chrome.tabs.getSelected(null, function (tab) {
tabplacement += 1;
var index = tab.index + tabplacement;
chrome.tabs.create({'url': url, active: !ctrlpressed, 'index': index});
});
});
});
包含用于处理 Mac 命令 ⌘
的元键
我有一个简单的研究列表 links Chrome 分机:
<a href="http://www.example1.com" target="_blank">Research Link 1</a>
<a href="http://www.example2.com" target="_blank">Research Link 2</a>
<a href="http://www.example3.com" target="_blank">Research Link 3</a>
在任何网页上,我都可以按住 Ctrl 键并单击全部三个 link,在后台打开新标签页。但是,Chrome 扩展弹出窗口似乎并非如此。如果您按住 Ctrl 键并单击 link,该扩展程序会关闭弹出窗口,这会阻止您在任何时候单击多个 link。
我已经尝试过点击 chrome.tabs.create 方法,这在其他几篇文章中有所描述,但这似乎与点击 target="_blank" 类似,因为它只是打开一个带有焦点的新标签。
chrome.tabs.create({url: 'http://www.google.com'});
有没有什么方法可以在没有焦点的情况下打开一个新选项卡(ctrl+单击),同时仍然允许扩展弹出窗口在当前选项卡中保持可见,以便用户可以单击第二个、第三个或第四个 link?这样用户就不必多次重新运行扩展程序,而这需要时间,因为它必须重新验证和查询数据。
是的,有an option for create
:
chrome.tabs.create({url: 'http://www.google.com', active: false});
我完全按照您的描述在我的一个扩展程序中使用它。
虽然已接受的答案有效,但我最终还是这样做了,以便在Chrome 扩展 - 使用 jQuery.
<a class="ctrllink" style="cursor: pointer;" url="http://www.example1.com">Research Link 1</a>
<a class="ctrllink" style="cursor: pointer;" url="http://www.example2.com">Research Link 2</a>
<a class="ctrllink" style="cursor: pointer;" url="http://www.example3.com">Research Link 3</a>
我使用了 <a>
标签以保持默认的超链接样式(颜色、悬停下划线等)但删除了 href。由于没有href,需要在元素中定义光标样式或者class.
全局变量:
var tabplacement = 0;
Tabplacement 是为了模拟 Chrome 打开标签的方式,从上次创建的开始递增。
$(function () {
$('.ctrllink').on('click', function (event) {
var ctrlpressed = (event.ctrlKey || event.metaKey);
var url = $(this).attr('url');
chrome.tabs.getSelected(null, function (tab) {
tabplacement += 1;
var index = tab.index + tabplacement;
chrome.tabs.create({'url': url, active: !ctrlpressed, 'index': index});
});
});
});
包含用于处理 Mac 命令 ⌘
的元键