检测左键单击并将其更改为中键单击o Ctrl +单击

时间:2019-03-30 11:46:02

标签: javascript jquery html

我有一个个人网站,您可以在其中阅读内容时听音乐。 Firefox发行了66版本并阻止了“自动播放”功能后,我在音频方面遇到了很多问题。

默认情况下,音频播放器已停止,因此用户必须启动它(并遵守浏览器想要的新行为标准),但是我发现,当我单击链接并在新选项卡中打开时target="_blank"音频停止播放,画布动画也停止播放。

但是我发现,如果我使用鼠标的middle button打开链接或使用Ctrl + Click,则该标签页会打开,而不会在背景上更改为该标签,并且音频和动画仍然有效并且不要停止。

因此,我一直在尝试更改left click的默认行为,以在点击链接时触发middle buttonCtrl + Click,但无法使其正常工作。

我想在整个文档中检测到left click并将其行为更改为middle buttonCtrl + Click(但这可能是一个丑陋的方法),或者创建一个函数并对其进行调用<a>标签与onclick=_the_function_

此刻,我可以检测到按钮(Reference):

$(document).onclick(function(event) {
  if (event.which === 0) or (event.button === 0) {
    event.stopPropagation();
    event.preventDefault();
    # here I want to change the pressed button
  }
});

但是我不知道我必须在哪个变量中更改按下按钮的值。或者,如果这种方法不是正确的方法。

致谢。

1 个答案:

答案 0 :(得分:0)

您可以创建一个自定义事件,该事件设置event.button并在单击相应链接时触发该事件。

类似的东西:

$('a.someClass').click(function(e) {
  if (e.button !== 1) {
    e.preventDefault();
    e.stopPropagation()
    console.log('Prevented left')
    var evt = jQuery.Event('click', {button: 1});
    $(this).trigger(evt);
  }
});