Firefox автоматически запускает функцию JavaScript с именем «onload» - PullRequest
4 голосов
/ 15 октября 2011

Может ли кто-нибудь подтвердить, что firefox (3.6) автоматически запускает функцию javascript с именем «onload» без явного вызова?Chrome и IE не запускают автоматически объявленную функцию, если она не вызывается, но Firefox, очевидно, будет запускать объявленную функцию «onload», даже если она не вызывается (все в нижнем регистре).

Вот ссылка jsfiddle для проверки.

Если в теге body вы назначите функцию с именем 'test' для события onload, то firefox вызовет функцию test.Если вы удалите вызов onload, firefox автоматически вызовет функцию «onload».

Является ли это известным свойством firefox?

Ответы [ 2 ]

3 голосов
/ 15 октября 2011

Firefox 3.6 действительно делает это. Так же и 4-8. Firefox 9 исправляет эту ошибку, так что function onload() {} больше не добавляет функцию в качестве прослушивателя событий загрузки. Подробнее об этом изменении см. https://bugzilla.mozilla.org/show_bug.cgi?id=659350.

3 голосов
/ 15 октября 2011

Это потому, что если вы объявляете глобальный function onload(), это на самом деле window.onload.Этот пример объясняет это:

<script>
var a = 1;
alert(window.a); // alerts "1"
</script>

Это должно быть кросс-браузерным (хотя я проверял это только на FF3.6 и IE7,8).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...