如果我使用鼠标左键单击目标为_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/