我正在尝试通过单击按钮在后台打开一个选项卡,类似于 ctrl-click
的工作方式。我尝试通过以下方式模拟 ctrl-click
,它设法在新选项卡中打开,但不会在后台打开。它会切换到新选项卡。这对我来说不起作用,因为此选项卡上的进程需要一点时间才能运行,而且我不希望我的用户盯着空白选项卡那么长时间。
这是我尝试过的:
模拟 Ctrl-Click:
var a = document.createElement('a');
a.href = 'http://www.google.com';
var evt = document.createEvent('MouseEvent');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(evt);
这会打开一个新选项卡并将焦点更改到新选项卡,即使 ctrlKey 选项设置为 true。
更改窗口焦点
var a = document.createElement('a');
a.href = 'http://www.google.com';
var evt = document.createEvent('MouseEvent');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(evt);
window.focus();
工作方式与上面相同。
如何让它在后台完全打开而无需切换选项卡?
最佳答案
在纯 JavaScript 中,您可以使用 MouseEvent
为此:
const a = document.createElement("a");
a.setAttribute("href", "https://www.google.com/");
a.dispatchEvent(new MouseEvent("click", {ctrlKey: true}));
关于javascript - JS 在后台打开选项卡/模拟 ctrl-click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46819883/