Javascript JS在后台打开选项卡/simulate ctrl单击
我正在尝试在按钮单击的背景中打开一个选项卡,类似于Javascript JS在后台打开选项卡/simulate ctrl单击,javascript,jquery,browser,tabs,mouseevent,Javascript,Jquery,Browser,Tabs,Mouseevent,我正在尝试在按钮单击的背景中打开一个选项卡,类似于ctrl-click的工作方式。我试着用下面的方法模拟一个ctrl点击,它可以在一个新的选项卡中打开,但不能在后台打开。它将切换到新选项卡。这对我不起作用,因为这个选项卡上的流程需要一点时间才能运行,我不希望我的用户盯着空白选项卡看那么久 以下是我尝试过的: 模拟Ctrl键单击: var a = document.createElement('a'); a.href = 'http://www.google.com'; var evt = doc
ctrl-click
的工作方式。我试着用下面的方法模拟一个ctrl点击
,它可以在一个新的选项卡中打开,但不能在后台打开。它将切换到新选项卡。这对我不起作用,因为这个选项卡上的流程需要一点时间才能运行,我不希望我的用户盯着空白选项卡看那么久
以下是我尝试过的:
模拟Ctrl键单击:
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();
工作原理与上述相同
如何在不切换选项卡的情况下在后台完全打开此文件?
//要检测ctrl,请单击
函数ctrl\u单击(\u事件){
如果(_event.ctrlKey){
警报(“ctrl_单击”);
}
}
//对于“模拟ctrl”,请单击
setTimeout(函数(){
var evt=$.Event('click');
evt.ctrlKey=真;
$('测试')。触发器(evt);
},3000);代码>
在纯javascript中使用CTRL键单击我,您可以使用:
const a = document.createElement("a");
a.setAttribute("href", "https://www.google.com/");
a.dispatchEvent(new MouseEvent("click", {ctrlKey: true}));
这不会在后台选项卡中打开。另外,当将.trigger与上面的代码一起使用时,我得到一个错误,即a.trigger不是一个函数。我给出了一个使用CTRL+CLICK的简单示例。它的作品。也许这不是你所需要的…这不是问题所描述的,但感谢你尝试找到解决方案?真的觉得如果没有恶意,你几乎不可能想到一个你需要它的案例…@BojidarStanchev我只是想避免打开标签,他们仍然会看到下载发生。许多网站都是这样做的,你点击下载,然后只看到一个下载开始,没有切换标签或页面。