我在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键并单击所有三个链接,在后台打开新标签页。但是,Chrome扩展弹出窗口似乎不是这种情况。如果您按住某个键并单击某个链接,该扩展程序会关闭该弹出窗口,这会阻止您随时单击多个链接。
我尝试过点击chrome.tabs.create方法,这在其他几篇文章中有描述,但这似乎只是点击target =“_ blank”,因为它只是打开一个有焦点的新标签。
chrome.tabs.create({url: 'http://www.google.com'});
有没有办法打开没有焦点的新标签(ctrl + click),同时仍然允许扩展弹出窗口在当前标签中保持可见,以便用户可以点击第二,第三或第四个链接?这样,用户不必多次重新运行扩展,这需要花费时间,因为它必须重新进行身份验证和查询数据。
答案 0 :(得分:13)
是的,有an option for create
:
chrome.tabs.create({url: 'http://www.google.com', active: false});
我正在我的扩展程序中使用它,正如您所描述的那样。
答案 1 :(得分:0)
以下是我在Chrome扩展程序中允许正确的ctrl +单击(在新背景窗口中打开选项卡)时所做的事情 - 使用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,需要在元素或类中定义光标样式。
全局变量:
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 Command的metaKey⌘