Jeg bruker følgende kode for å utføre noen utsagn etter at siden er lastet inn.
<script type="text/javascript">
window.onload = function () {
newInvite();
document.ag.src="b.jpg";
}
</script>
Men denne koden fungerer ikke som den skal. Funksjonen kalles selv om noen bilder eller elementer lastes inn. Det jeg ønsker er å kalle funksjonen når siden er lastet helt inn.
dette kan fungere for deg:
document.addEventListener('DOMContentLoaded', function() {
// your code here
}, false);
eller hvis du er komfortabel med jquery,
$(document).ready(function(){
// your code
});
$(document).ready()
utløses ved DOMContentLoaded, men denne hendelsen utløses ikke konsekvent i alle nettlesere. Dette er grunnen til at jQuery mest sannsynlig vil implementere noen tunge løsninger for å støtte alle nettleserne. Og dette vil gjøre det veldig vanskelig å "nøyaktig" simulere oppførselen ved hjelp av vanlig Javascript (men selvfølgelig ikke umulig).
som Jeffrey Sweeney og J Torres foreslo, tror jeg det er bedre å ha en setTimeout
funksjon, før du skyter funksjonen som nedenfor:
setTimeout(function(){
//your code here
}, 3000);
Hvis du kan bruke jQuery, kan du se på load. Du kan da angi at funksjonen din skal kjøres etter at elementet ditt er ferdig lastet.
Tenk for eksempel på en side med et enkelt bilde:
<img src="book.png" alt="Book" id="book" />
Hendelsesbehandleren kan knyttes til bildet:
$('#book').load(function() {
// Handler for .load() called.
});
Hvis du trenger at alle elementene i det gjeldende vinduet skal lastes inn, kan du bruke
$(window).load(function () {
// run code
});