我是javascript的新学习者,以下代码来自javascript权威指南。
function addEvent(elem, evtType, func)
{
if (elem && typeof(elem) == "object")
{
if (elem.addEventListener)
{
elem.addEventListener(evtType, func, false);
}
else
{
elem["on" + evtType] = func;
}
}
}
为什么要添加
if (elem.addEventListener)
{
elem.addEventListener(evtType, func, false);
}
但是window.onload
在每个浏览器下都能正常工作。以下是我的测试示例。
<script type="text/javascript">
window.onload=myFuntion();
function myFuntion(){
alert("test");
}
</script>
</head>
<body>
<h1> testtste </h1>
</body>
在IE ff。
下工作正常答案 0 :(得分:2)
直接分配不健全。
...并且您的代码无论如何都没有在加载时运行该函数。它立即运行它并将返回值(undefined
)分配给onload
对象。
如果我们解决了这个问题,那就进行演示:
<script type="text/javascript">
window.onload=myFuntion;
function myFuntion(){
alert("test");
}
</script>
<script type="text/javascript">
window.onload=myOtherFunction;
function myOtherFunction(){
alert("test2");
}
</script>
事件被覆盖。只会触发一个功能。
......来自权威指南的例子并不是很好。它回退到直接赋值(这使得它毫无意义),而不是尝试允许多事件绑定的旧的专有API(例如,对于IE 8及更低版本的attachEvent)。