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?
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>
Insérez-le n'importe où dans le corps de la page:
<script type="text/javascript">
window.onload = function(){
//do something here
}
</script>
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() {
// ...
});
Page.ClientScriptManager.RegisterStartupScrip(this.GetType(), "startup", "startClock();", true);
ou en utilisant un prototype
document.observe("dom:loaded", function() {
// code here
});
window.addEventListener("load", function() {
startClock();
}
Cela invoquera la fonction startClock au chargement de la page.