一尘不染

在后台打开新标签页?

javascript

我想使用Javascript在其他标签中打开新页面,但仍将重点放在当前标签上。我知道我可以这样做:

open('http://example.com/');
focus();

但是,当我在chrome中执行此操作时,它会闪烁新标签一会儿,然后再切换回当前标签。我想避免这种情况。

该应用程序是个人书签,因此仅需在最新的Chrome中运行。


阅读 404

收藏
2020-04-25

共1个答案

一尘不染

更新:谷歌浏览器的版本41 initMouseEvent 似乎已更改行为。

这可以通过在属性属性设置为所需的动态生成元素上模拟ctrl+
click(或打开背景选项卡的任何其他键/事件组合)来完成a``href``url

行动中: jsfiddle

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = "http://www.google.com/";
    var evt = document.createEvent("MouseEvents");
    //the tenth parameter of initMouseEvent sets ctrl key
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
                                true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}

仅在铬上测试

2020-04-25