超链接点击未触发

时间:2015-03-05 19:34:36

标签: javascript events hyperlink click

我想用JavaScript点击超链接。我用了这段代码:

for (var i = 0; i < document.links.length; i++) { 
    document.links[i].onclick = function() { 
           doSomething();       
        } 
    }

在普通超链接<a href="index.html">Home</a>上,一切正常,但链接到pdf文件

<a href="tmp.pdf">tmp.pdf</a>

未调用操作doSomething();。我的页面被重定向到tmp.pdf而不触发click事件。我不知道为什么。

你能告诉我什么是问题吗?我想避免使用jQuery。

3 个答案:

答案 0 :(得分:0)

您可以删除href属性并在catch函数中重定向到该文件。做一些逻辑,然后将用户重定向到新的页面/文件。

<a id="pdf" href="">tmp.pdf</a>

for (var i = 0; i < document.links.length; i++) { 
    document.links[i].onclick = function() { 
           doSomething();  
           if(link[s].id == "pdf"){
               window.location="tmp.pdf";
           }
        } 
    }

答案 1 :(得分:0)

我认为你需要确保,你在页面加载后执行javascript。它可能适合你

$( document ).ready(function() {
 for (var i = 0; i < document.links.length; i++) {
  document.links[i].onclick = function() {
         alert('testing')
      }
  }
});

仅供参考,我使用jQuery ready事件确保脚本在页面加载后执行。

答案 2 :(得分:0)

所以,我发现它...在javascript文件的某个地方,我发现这个代码导致了我的问题

  if ( (String($(this).prop('href')).indexOf('.pdf') != -1)) {
    evt.stopPropagation();
    evt.cancelBubble = true;

感谢