firefox自动触发名为'onload'的javascript函数

时间:2011-10-14 23:23:11

标签: javascript firefox

有人可以确认firefox(3.6)会在没有明确调用的情况下自动运行名为'onload'的javascript函数吗? Chrome和IE不会自动运行声明的函数,除非被调用,但是firefox显然会运行声明的函数'onload',即使它没有被调用(全部在小写中)。

以下是要测试的jsfiddle link

在body标签中,如果将名为'test'的函数分配给onload事件,则firefox将调用test函数。如果删除onload调用,firefox将自动调用函数'onload'。

这是firefox的已知属性吗?

2 个答案:

答案 0 :(得分:3)

这是因为如果您声明全局function onload(),那么它实际上是window.onload。 这个例子解释了它:

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

这应该是跨浏览器有效的(我只在FF3.6和IE7,8上测试过它。)

答案 1 :(得分:3)

Firefox 3.6实际上确实这样做了。 4-8也是如此。 Firefox 9修复了这个错误,因此function onload() {}不再将该函数添加为加载事件监听器。有关更改的详细信息,请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=659350