有没有办法模仿点击事件而不关注窗口?

时间:2014-11-25 21:37:59

标签: javascript google-chrome focus mouseevent

我正在尝试编写一个功能,在谷歌浏览器中,将在后台打开标签(不会失去对当前窗口的关注),而且,可以继续这样做,循环遍历一系列网址,而无需关注主浏览器窗口,如果它被最小化或没有聚焦。

这是我撰写的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));
    });
}

然而问题是每次触发模拟的点击事件时,即使浏览器窗口被最小化,它也会弹回到前台,中断我正在做的其他事情。有没有办法阻止这种行为?

0 个答案:

没有答案