2012-01-14 4 views
6

Perché questo codice non funziona? Sto usando FF.getElementById e null - perché?

<head> 
<script type="text/javascript"> 

document.getElementById("someID").onclick = function(){ 
    alert("Yahooo"); 
} 
</script> 
</head> 

<body> 
<a href="#" id="someID">someID</a> 
</body> 

</html> 

Sto ottenendo errore javascript getElementById è uguale a null.

risposta

10

Il DOM necessario non viene caricato quando lo script viene eseguito. O spostarlo verso il basso (sotto la href) o definiscono in questo modo:

window.onload = function() { 
    document.getElementById("someID").onclick = function(){ 
     alert("Yahooo"); 
    } 
} 

window.onload verrà chiamato quando la pagina è completamente caricata.

2

Poiché l'elemento non esiste ancora quando viene eseguito lo script, il documento non è ancora stato sottoposto a rendering. Eseguire lo script in un blocco di script dopo il codice HTML correlato oppure utilizzare un gestore di eventi "documento pronto", preferibilmente da qualcosa come l'evento .ready() di jQuery o il numero nativo window.onload.

+0

OMG! Facepalm. Grazie :) – lunar