Событие onload для document.body ведет себя странно - PullRequest
2 голосов
/ 23 июня 2011

Я использую Firefox 4.0, и когда я использую событие load для элемента 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>

теперь это не работает сейчас я попробовал это

     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>

это не работает. Что не так?

в ответ на Doug 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>

это не работает, либо не работает

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

в последней попытке body has finished loading и во второй последней попытке body is being loaded. но это не работает до сих пор

1 Ответ

1 голос
/ 23 июня 2011

Доступ к body в голове невозможен, пока он не будет загружен. Ваш второй метод использования атрибута onload правильный. В качестве альтернативы, я бы порекомендовал использовать jQuery с

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

Он совместим с разными браузерами. Без jQuery вам пришлось бы иметь дело с различиями событий DOM между IE и другими.

...