2011-06-22 10 views
2

firefox 4.0を使用していて、body要素にloadイベントを使用すると、動作が異常です。私はいくつかの仕事といくつかの仕事を試してみました。 最初はこのonloadイベントがdocument.body上で動作しています

<html> 
<head> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.addEventListener("load",load,false); 
</script> 
</head> 
<body > 
</body> 
</html> 

のようである今、このdoesntの仕事 今私はこの

 html> 
    <head> 
    <script type="text/javascript"> 
    var load = function(){ 
    alert("body loaded");  //alert displayed 
    }; 
    </script> 
    </head> 
    <body onload="load()"> 
    </body> 
    </html> 

を試してみましたこれは が、今私はこの

<html> 
<head> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.onload=load; 
</script> 
</head> 
<body > 
</body> 
</html> 

このdoesntの仕事をしようとした作品。 何が間違っていますか?

ダグDへの応答として、私はどちらか、この

<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.onload=load; 
</script> 
</body> 
</html> 

このdoesntの仕事をしようとしたんどちらも、この作品の最後の試みbody has finished loadingにおける第二の最後の試みbody is being loaded

<html> 
<head> 
</head> 
<body> 
</body> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.onload=load; 
</script> 
</html> 

を行います。これはまだ動作しません

+0

'body.onload'はありません。しかし、 ''があります。 –

+0

@マックマクドナルド:これは同じですか? bodyでaddEventListnerを使うのはどうですか?それもうまくいきません – lovesh

答えて

1

bodyはロードされるまで先頭にアクセスできません。 onload属性を使用する2番目の手法は正しいです。代わりに、jQueryの使用をお勧めします。

$(document).ready(function() 
{ 
    alert("body loaded"); 
}); 

ブラウザ間での互換性があります。 jQueryがなければ、IEと他のユーザーとのDOMイベントの違いに対処する必要があります。

+0

最初の例では、イベントリスナーをdocument.bodyではなくドキュメントに追加する必要があります。 –

+0

D:ドキュメントではなくボディにloadイベントを添付していますので、document.bodyに追加する必要があります。 – lovesh

+0

document.addEventListener( "load"、load、false);を試してください。 (ただし、IE上ではありません) –

関連する問題