web-dev-qa-db-ja.com

JavaScriptイベントをフックしてページをロードする

本文のonloadイベント中に実行される次のjavascript関数を持つaspxがあります。

<body onload="startClock();">

ただし、マスターページを使用するようにaspxを設定しているため、bodyタグはaspxに存在しません。 startClock関数を登録して、ページがヒットしたときに実行されるようにして、マスターページを使用させるにはどうすればよいですか?

23
Jagd

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>

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

38
Corbin March

これをページの本文の任意の場所に挿入します。

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

最もクリーンな方法は、jQueryのようなJavaScriptフレームワークを使用することです。 jQueryでは、次の方法でオンロード関数を定義できます。

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

または、短い$();スタイルが気に入らない場合:

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

またはプロトタイプを使用して

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

これにより、ページの読み込み時にstartClock関数が呼び出されます。

0
Kartikeya_M