我有两个
JavaScript块,它们都通过winodow.onload调用函数.其中一个函数在每个页面上调用,但另一个函数仅在一个特定页面上调用.在该页面上,一个功能可以工作,但另一个功能不起作用,我没有收到任何我能看到的错误.
是否通过window.onload在不同的脚本块中调用这两个函数是否重要(参见示例)?这不应该工作吗?
<!--some html--> <script language="JavaScript" type="text/javascript"> function firstFunction(){ //do stuff } window.onload = firstFunction; </script> <!--some html--> <script language="JavaScript" type="text/javascript"> function secondFunction(){ //do stuff } window.onload = secondFunction; </script> <!--some html-->
更新:
我最终采用了zzzzBov的建议,即使用jQuery的$(document).ready(doAction);功能.现在我在一个页面上都包含了多个使用此调用的.并且没有冲突.
解决方法
注册事件处理程序的推荐最佳实践是使用“addEventListener”(参见
https://developer.mozilla.org/en/DOM/element.addEventListener).使用此方法可确保处理程序是附加的,并且不会替换现有的处理程序.
function something() {alert("1");} function somethingElse() {alert("2");} window.addEventListener("load",something,false); window.addEventListener("load",somethingElse,false);