HTMLLinkjavascript如何右键单击或Shift单击执行(在新窗口/选项卡中打开)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (183)

在新窗口/选项卡中打开基于JavaScript的链接。

我有个链接

<a href='/page' onclick='trackClick()'>Page</a>

我认为,在浏览器重定向到新页面之前,trackClick()函数可能没有足够的时间执行。

为了解决这个问题,我已经将html更改为

<a href='#' onclick='trackClick('/page')'>Page</a>

其中trackClick函数将在发送信号到分析端点以避免赛车条件后重定向到下一页。

因此,“Shift+Click”或“右键+在新窗口中打开”将不会打开/页在一个新的窗口/标签中。

克服这个问题的最好方法是什么?浏览器在重定向到下一页之前不等待onclick事件完成的可能性有多大?

提问于
用户回答回答于

代码如下:

<script>
  function leftClick() {
    alert("click");
  }

  function rightClick() {
    alert("right click");
  }

  function mouseDown() {
    alert("Mouse down");
  }

  function mouseUp() {
    alert("Mouse up");
  }
</script>
<a href="http://www.google.com" onclick="leftClick()">CLick Me</a><br>
<a href="http://www.google.com" oncontextmenu="rightClick()">Right CLick Me</a><br>
<a href="http://www.google.com" onmousedown="mouseDown()">Any Click Me</a><br>
<a href="http://www.google.com" onmouseup="mouseUp()">Any Click Me</a><br>

所以你真正想要的是:

<a href='/page' onclick='trackClick()' oncontextmenu="trackClick()">Page</a>

或者也许

<a href='/page' onmouseup='trackClick()' >Page</a> 

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励