如何通过_blank和后台在新窗口中打开链接?

Eri*_*Yin 1 javascript hyperlink

对于普通链接<a href="xxx" target="_blank">,该链接将在新窗口(或选项卡)中打开。

我想知道是否有办法在后台打开它,并使当前窗口保持活动状态。

Dag*_*bit 5

open新窗口(我们将其称为newWindow)之后,执行以下操作:

newWindow.blur();
window.focus();
Run Code Online (Sandbox Code Playgroud)

通常将其称为“背后弹出”。由于大多数Web浏览器都内置了弹出窗口阻止程序,因此除非由诸如鼠标单击之类的用户操作启动,否则通常无法打开窗口。

只要记住打开新窗口时要使用它的句柄即可。

var newWindow = window.open(...);
Run Code Online (Sandbox Code Playgroud)

另外,如果弹出窗口正在从其他域加载内容,则需要先执行blur/ focus事情,然后再将窗口发送到其目的地,否则会遇到同源问题。


HTML:

<a href="xxx" target="_blank" onclick="return popUnder(this);">
Run Code Online (Sandbox Code Playgroud)

JS:

function popUnder(node) {
    var newWindow = window.open("about:blank", node.target, "width=500,height=500");
    newWindow.blur();
    window.focus();
    newWindow.location.href = node.href;
    return false;
}
Run Code Online (Sandbox Code Playgroud)