Posted in Javascript onJuly 09, 2009
解决方法,
一、Mozilla 提供了一个非公开的(undocumented)函数:
// for Mozilla browsers if (document.addEventListener) { document.addEventListener("DOMContentLoaded", init, false); }
二、对于 IE 浏览器,可以使用IE特有的 defer 属性:
<script defer type="text/javascript"> alert("DOM 加载完毕!") </script>
具有defer属性的脚本块会在DOM 加载完毕后执行。
非IE浏览器会忽略 defer 而直接执行 script 代码,因此,你可以有两种办法来屏蔽非IE浏览器执行这段针对IE的代码:
1.条件注释
<!--[if IE]> <script defer type="text/javascript"> alert("DOM 加载完毕!") </script> <![endif]-->
2.条件编辑
<script defer type="text/javascript"> // for Internet Explorer /*@cc_on @*/ /*@if (@_win32) alert("DOM 加载完毕!"); /*@end @*/ </script>
三、对于Safari,这里有一个jQuery的解决方案:
if (/WebKit/i.test(navigator.userAgent)) { // sniff var _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) { clearInterval(_timer); init(); // call the onload handler } }, 10); }
window.onload 加载完毕的问题及解决方案(上)
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@