I have an aspx that has the following javascript function being ran during the onload event of the body.
<body onload="startClock();">
However, I'm setting the aspx up to use a master page, so the body tag doesn't exist in the aspx anymore. How do I go about registering the startClock function to run when the page is hit and still have it use a masterpage?
If you don't want to explicitly assign window.onload or use a framework, consider:
<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>
Insert this anywhere in the body of the page:
<script type="text/javascript">
window.onload = function(){
//do something here
}
</script>
The cleanest way is using a javascript framework like jQuery. In jQuery you could define the on-load function in the following way:
$(function() {
// ...
});
Or, if you don't like the short $();
style:
$(document).ready(function() {
// ...
});
Page.ClientScriptManager.RegisterStartupScrip(this.GetType(), "startup", "startClock();", true);
or using prototype
document.observe("dom:loaded", function() {
// code here
});
window.addEventListener("load", function() {
startClock();
}
This will invoke the startClock function at page load.
来源:https://stackoverflow.com/questions/946518/hook-a-javascript-event-to-page-load