本文のonloadイベント中に実行される次のjavascript関数を持つaspxがあります。
<body onload="startClock();">
ただし、マスターページを使用するようにaspxを設定しているため、bodyタグはaspxに存在しません。 startClock関数を登録して、ページがヒットしたときに実行されるようにして、マスターページを使用させるにはどうすればよいですか?
Window.onloadを明示的に割り当てたり、フレームワークを使用したりしない場合は、次のことを考慮してください。
<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>
これをページの本文の任意の場所に挿入します。
<script type="text/javascript">
window.onload = function(){
//do something here
}
</script>
最もクリーンな方法は、jQueryのようなJavaScriptフレームワークを使用することです。 jQueryでは、次の方法でオンロード関数を定義できます。
_$(function() {
// ...
});
_
または、短い$();
スタイルが気に入らない場合:
_$(document).ready(function() {
// ...
});
_
Page.ClientScriptManager.RegisterStartupScrip(this.GetType(), "startup", "startClock();", true);
またはプロトタイプを使用して
document.observe("dom:loaded", function() {
// code here
});
window.addEventListener("load", function() {
startClock();
}
これにより、ページの読み込み時にstartClock関数が呼び出されます。