模拟ctrl+;使用javascript或jquery单击(打开一个没有焦点的新选项卡)
我正在玩jquery事件对象,但我被卡住了 我阅读了API,但它在这里并没有真正的帮助,我甚至不确定这是否是一个好的线索 你有什么建议吗(问题是按ctrl键并单击链接)。我看到了一些关于它的帖子,但在最近的浏览器上似乎没有任何效果 非常简单的示例:模拟ctrl+;使用javascript或jquery单击(打开一个没有焦点的新选项卡),javascript,jquery,Javascript,Jquery,我正在玩jquery事件对象,但我被卡住了 我阅读了API,但它在这里并没有真正的帮助,我甚至不确定这是否是一个好的线索 你有什么建议吗(问题是按ctrl键并单击链接)。我看到了一些关于它的帖子,但在最近的浏览器上似乎没有任何效果 非常简单的示例: toto //目标是当我点击“toto”时,我想在新的选项卡中触发 //在没有焦点的新选项卡中。要做到这一点,我在想 //关于复制ctrl+click事件 $('#toto')。单击(函数(){ ??? }) 编辑: jQuery中的事件对象有一个c
toto
//目标是当我点击“toto”时,我想在新的选项卡中触发
//在没有焦点的新选项卡中。要做到这一点,我在想
//关于复制ctrl+click事件
$('#toto')。单击(函数(){
???
})
编辑:
jQuery中的事件对象有一个ctrlKey参数,您可以单击将其指定为true
var e = jQuery.Event("click");
e.ctrlKey = true;
$('#id').trigger(e);
参考:这是一个非jQuery版本,用于模拟键盘事件。这在Chrome(基于WebKit)和Firefox(基于Gecko)中都适用: 或者使用jQuery,您可以通过jQuery的
事件
对象模拟:
jQuery.event.trigger({
type: 'keypress',
which: character.charCodeAt(0)
});
在纯javascript中,您可以使用:
document.getElementById("todo").dispatchEvent(new MouseEvent("click", {ctrlKey: true}));
要以编程方式打开新选项卡,可以执行以下操作:
const a = document.createElement("a");
a.setAttribute("href", "https://www.google.com/");
a.dispatchEvent(new MouseEvent("click", {ctrlKey: true}));
可能有一个事件监听器用于
ctrl
keyboard事件,然后在其中有一个click事件来执行某些操作?他需要在单击时触发键盘上的ctrl,而不是check!同样(使用Chrome)thx作为你的答案,也许我的问题不够清楚。我真的不知道如何利用你的答案。我编辑了question@hadesMM在你的函数中,添加我的:)
如何在特定元素上执行此操作?这不仅对我不起作用,现在也不推荐使用。不幸的是没有。在新选项卡中打开可以使用任何一种方法,但不能在后台使用。我只能假设这是由于阻塞或其他原因造成的,这是一种耻辱,因为我只想为自己的浏览器(代码片段)而不是其他任何人做这件事。我已经看过了类似的问题,但没有一个答案看起来有效了。这在Chrome78中对我有效,但在FirefoxESR68中无效。事实上,如果ctrlKey设置为true,则click事件将完全停止在FF中工作。
document.getElementById("todo").dispatchEvent(new MouseEvent("click", {ctrlKey: true}));
const a = document.createElement("a");
a.setAttribute("href", "https://www.google.com/");
a.dispatchEvent(new MouseEvent("click", {ctrlKey: true}));