web-dev-qa-db-fra.com

Accrocher un événement javascript au chargement de la page

J'ai un aspx qui a la fonction javascript suivante exécutée pendant l'événement onload du corps.

<body onload="startClock();">

Cependant, je configure l'aspx pour utiliser une page maître, de sorte que la balise body n'existe plus dans l'aspx. Comment puis-je enregistrer la fonction startClock pour qu'elle s'exécute lorsque la page est visitée et qu'elle utilise toujours une page maître?

23
Jagd

Si vous ne souhaitez pas attribuer explicitement window.onload ou utiliser un framework, envisagez:

<script type="text/javascript">
function startClock(){
    //do onload work
}
if(window.addEventListener) {
    window.addEventListener('load',startClock,false); //W3C
} else {
    window.attachEvent('onload',startClock); //IE
}
</script>

http://www.quirksmode.org/js/events_advanced.html

38
Corbin March

Insérez-le n'importe où dans le corps de la page:

<script type="text/javascript">
window.onload = function(){
    //do something here
}
</script>
2
Gabriel Hurley

La manière la plus propre est d'utiliser un framework javascript comme jQuery. Dans jQuery, vous pouvez définir la fonction en charge de la manière suivante:

$(function() {
    // ...
});

Ou, si vous n'aimez pas le style court $();:

$(document).ready(function() {
    // ...
});
1
ThiefMaster
Page.ClientScriptManager.RegisterStartupScrip(this.GetType(), "startup", "startClock();", true);

ou en utilisant un prototype

document.observe("dom:loaded", function() {
  // code here
});
0
George
window.addEventListener("load", function() {
    startClock();
}

Cela invoquera la fonction startClock au chargement de la page.

0
Kartikeya_M