我正在尝试编写一个功能,在谷歌浏览器中,将在后台打开标签(不会失去对当前窗口的关注),而且,可以继续这样做,循环遍历一系列网址,而无需关注主浏览器窗口,如果它被最小化或没有聚焦。
这是我撰写的Chrome扩展程序的一部分,因此我只关心与Google Chrome的兼容性。
为了确保选项卡在后台打开,我使用了以下功能,我没有写,但发现它们运行良好。据我所知,这只是模拟Ctrl + Click。
function emulateClick(element){
var evt = element.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, element.ownerDocument.defaultView, 1, 0, 0, 0, 0, true, false, false, true, 0, null);
if (document.createEventObject){
element.fireEvent('onclick', evt)
} else{
element.dispatchEvent(evt);
}
}
function openTabs(x) {
$.each(x, function (index, url) {
var $link = $('<a>', {
"target" : "_blank",
"href" : url
});
emulateClick($link.get(0));
});
}
然而问题是每次触发模拟的点击事件时,即使浏览器窗口被最小化,它也会弹回到前台,中断我正在做的其他事情。有没有办法阻止这种行为?