2011-09-28 62 views
1

我開發的Mozilla Firefox的擴展。主要功能是獲取用戶訪問的URL並在稍後處理。我想下面的JavaScript代碼:越來越HREF的onclick

window.onload = function(){ 
    alert(document.referrer); 
} 

沒有工作,所以我試圖注入一個onclick事件來使用這個每一個環節:

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

function show_href(){ 
    alert(this.href);  
} 

但也行不通。任何其他方法?

回答

0
+0

thanx它的工作原理...奇蹟y相同的代碼沒有工作b4 ??? –

+0

這不是完全相同的代碼。這爲每個鏈接分配一個匿名函數,而不是一個命名函數。 – graphicdivine

0

在第二種方法中,問題可能是for loop

window.onload = function(){ 
    var links = document.links, 
     max, 
     i; 

    for(var i=0, max = links.length; i < max; i += 1) { 
     (function() { 
     var link = links[i]; 

     link.onclick = function() { 
      alert(this.href); 
     } 
     })(); 
    } 
}; 
+0

爲什麼封閉幫助?任何時候他都不會「丟失」「我」的價值。 – Zirak

+0

是的。你是對的。我的回答太快了......對不起。 – user278064

0
var anchors = document.getElementsByTagName('a'); 
for(var i=0,l=anchors.length;i<l;i++) 
    if(anchors[i].hasAttribute('href')) 
     anchors[i].onclick = function(){ 
      alert(anchors[i].getAttribute('href')); 
     }