Rozwiążę rozszerzenie dla Mozilli Firefox. Główną funkcją jest uzyskanie adresu URL, który użytkownik odwiedza i przetworzy go później. Próbowałem następującego kodu JavaScript:

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

To nie działało, więc próbowałem wstrzyknąć wydarzenie onclick na każdy link przy użyciu tego:

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);    
}

Ale to też nie działa. Jakieś inne podejście?

1
BITS_Python 28 wrzesień 2011, 14:35

3 odpowiedzi

Najlepsza odpowiedź

Spróbuj tego:

<a href="#xxx">linktextx</a>
<a href="#yyy">linktexty</a>
<a href="#zzz">linktextz</a>
<script>
    window.onload = function() {
    var links = document.links;
    for(var i=0;i<links.length;i++){
        links[i].onclick = function(){alert(this.href)};
      }
    }
</script>

Zobacz: http://jsfiddle.net/uxmwj/ do demonstracji roboczej

0
graphicdivine 28 wrzesień 2011, 10:59

W drugim podejściu problem może być 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
user278064 28 wrzesień 2011, 10:51
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'));
        }
0
gion_13 28 wrzesień 2011, 10:55