我怎样才能抓住链接的开头

时间:2014-02-25 17:04:50

标签: javascript jquery

我有一个包含多个链接的HTML页面。有没有能力抓住打开链接的事件?用户只需单击链接,或者可以通过右键单击在新窗口或选项卡上打开它。

链接是指外部资源,我无法控制其内容。

3 个答案:

答案 0 :(得分:3)

我可以想到一些客户端选项,其中没有一个是理想选择:

  • 您可以将链接的href替换为运行您想要的任何代码的javascript:网址,然后导航到正确的网址(location.href = "http://example.com")。这是令人讨厌的,因为如果用户右键单击它会中断 - >新标签页或已禁用JavaScript。

  • 您可以为<a>的点击事件添加事件监听器。但是这不会在右键单击时触发 - &gt;打开,或用户跳过并按Enter键。

  • 您可以在文档本身上使用onunload事件处理程序,但这不会告诉您用户的去向,并且如果用户打开新选项卡则无法工作。

如果您只想跟踪用户导航到的位置,那么服务器端解决方案是唯一万无一失的方法。您必须将用户发送到您自己的服务器,然后服务器会发送HTTP 302代码以将浏览器重定向到正确的URL。当然,这需要比您想要的更多的基础设施。

答案 1 :(得分:0)

是的,你可以使用javascript做类似的事情......

 $('a').click(function(){
    event.preventDefault();
    $(this).alert("do something");
 });

答案 2 :(得分:0)

尝试

var links = document.getElementsByTagName('a');
for(var i = 0; i< links.length; i++) {
  links[i].onmousedown = function(e) {
    console.log(this.href, this)
    if ((e.which && e.which == 3) || (e.button && e.button == 2)) { // not sure about IE
      alert('right click');
    }
  }
}