javascript - 使用鼠标滚轮打开的新选项卡没有 window.opener 对象

标签 javascript html

如果我使用鼠标左键单击目标为_blank的 anchor 标记,则定义了window.opener。但是,如果我使用滚轮单击相同的 anchor 标记,则未定义 window.opener

该问题可以在 Google Chrome 和 Firefox、Windows 10 和 Mac OS X 中重现,并且不知道该如何处理。

有没有办法,在 Javascript 中,我可以禁用滚轮点击选择链接?也许我可以 Hook 滚轮单击事件并使其表现为鼠标左键单击?

谢谢!

最佳答案

据我所知,您可以通过检查 event.button 来模拟此行为

document.addEventListener('click', function (e) {
 // detecting that it was a wheel click on a link
 if (
  e.button === 1 &&
  e.target.tagName === 'A'
 ) {
   window.open(event.target.href);
   e.preventDefault();
 }
});

但是,如果您从其他域打开链接,则此解决方案将不起作用。

关于javascript - 使用鼠标滚轮打开的新选项卡没有 window.opener 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60305055/

相关文章:

javascript - 如何在不单击按钮的情况下将值放入文本框

javascript - 如何使用jquery获取div中的特定文本

javascript - 这个 jQuery 可以离线工作,但不能在线工作

html - 如何在 C 中解码 HTML 实体?

html - 2 个 div 彼此对齐并在视口(viewport)中居中停止在较小的视口(viewport)中对齐

javascript - 如何找出 Javascript 数组中元素的数量?

javascript - 在 Protractor e2e 测试中设置时区

javascript - 未捕获的 ReferenceError - Jekyll 项目中的 Javascript

javascript - 设置选取框标签文本的初始位置

javascript - 有没有更好的方法将多值数据显示为列?