javascript 如何防止`tel:`链接触发`beforeunload`事件?

v09wglhw  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(130)

我有一个弹出窗口出现之前,用户刷新页面这样做:

window.addEventListener('beforeunload', function (e) {
  e.preventDefault();
  e.returnValue = '';
});

这是预期的工作,但我不希望弹出窗口出现后,用户点击一个tel:链接,如<a href="tel:123123123">phone number</a>为例。
我想我可以检测到所有tel:链接上的点击,如下所示:

const phoneLinks = document.querySelectorAll('a[href^="tel:"]');
phoneLinks.forEach((phoneLink) => {
  phoneLink.addEventListener('click', () => {
    // Not sure what I can do
  });
});

我为此设置了一个codepen,但我不确定如何实际解决这个问题:https://codepen.io/obliviga/pen/XWxYJQG
有人有什么想法吗?

ni65a41a

ni65a41a1#

为链接添加一个target属性,使它们在新窗口中打开。

phoneLinks.forEach(link => link.addAttribute('target', '_blank'))

相关问题