本文の onload イベント中に次の JavaScript 関数が実行される aspx があります。
<body onload="startClock();">
ただし、マスター ページを使用するように aspx を設定しているため、body タグは aspx に存在しません。ページがヒットしたときに実行するように startClock 関数を登録し、マスターページを使用するにはどうすればよいですか?
本文の 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
});