Javascript 我怎样才能看到链接的打开

Javascript 我怎样才能看到链接的打开,javascript,jquery,Javascript,Jquery,我有一个带有多个链接的HTML页面。是否有能力捕获打开链接的事件?用户可以单击链接,也可以通过右键单击在新窗口或选项卡上打开链接 链接指的是外部资源,我无法控制其内容。是的,您可以使用javascript执行以下操作 $('a').click(function(){ event.preventDefault(); $(this).alert("do something"); }); 是的,你可以使用javascript做一些事情,比如 $('a').click(funct

我有一个带有多个链接的HTML页面。是否有能力捕获打开链接的事件?用户可以单击链接,也可以通过右键单击在新窗口或选项卡上打开链接


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

是的,您可以使用javascript执行以下操作

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

是的,你可以使用javascript做一些事情,比如

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

是的,你可以使用javascript做一些事情,比如

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

是的,你可以使用javascript做一些事情,比如

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

我可以想到几个客户端选项,但没有一个是理想的:

  • 您可以将链接的
    href
    替换为运行所需代码的
    javascript:
    url,然后导航到正确的url(
    location.href=)http://example.com“
    )。但这很糟糕,因为如果用户右键单击->新建选项卡或禁用JavaScript,它就会崩溃

  • 您可以将事件侦听器添加到
    的单击事件中。但这不会在右键单击->打开,或用户在其上单击并按enter键时触发

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


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

我可以想到一些客户端选项,但没有一个是理想的:

  • 您可以将链接的
    href
    替换为运行所需代码的
    javascript:
    url,然后导航到正确的url(
    location.href=)http://example.com“
    )。但这很糟糕,因为如果用户右键单击->新建选项卡或禁用JavaScript,它就会崩溃

  • 您可以将事件侦听器添加到
    的单击事件中。但这不会在右键单击->打开,或用户在其上单击并按enter键时触发

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


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

我可以想到一些客户端选项,但没有一个是理想的:

  • 您可以将链接的
    href
    替换为运行所需代码的
    javascript:
    url,然后导航到正确的url(
    location.href=)http://example.com“
    )。但这很糟糕,因为如果用户右键单击->新建选项卡或禁用JavaScript,它就会崩溃

  • 您可以将事件侦听器添加到
    的单击事件中。但这不会在右键单击->打开,或用户在其上单击并按enter键时触发

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


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

我可以想到一些客户端选项,但没有一个是理想的:

  • 您可以将链接的
    href
    替换为运行所需代码的
    javascript:
    url,然后导航到正确的url(
    location.href=)http://example.com“
    )。但这很糟糕,因为如果用户右键单击->新建选项卡或禁用JavaScript,它就会崩溃

  • 您可以将事件侦听器添加到
    的单击事件中。但这不会在右键单击->打开,或用户在其上单击并按enter键时触发

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

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

试试看

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');
    }
  }
}
var links=document.getElementsByTagName('a');
对于(变量i=0;i
试试看

var links=document.getElementsByTagName('a');
对于(变量i=0;i
试试看

var links=document.getElementsByTagName('a');
对于(变量i=0;i
试试看

var-lin