[英]Position of window.onload in Javascript
我有这样的JavaScript代码
<script type="text/javascript">
window.onload=myFunction;
</script>
在<head></head>
标记和</body>
标记之前使用上面的代码片段有什么区别,因为我想在页面加载后调用我的函数。
基本上没有实际差异,但我建议
将代码放在底部,因为您需要使用脚本(blocking-rendering标签),所以最好将其放在文档的末尾。
为了避免这样的破坏性分配:编写window.onload=myFunction
可以销毁对window.onload
事件的其他先前分配(如果有的话),所以最好是这样
(function() { var previousOnLoadIfAny = window.onload; window.onload = function() { if (typeof previousOnLoadIfAny === 'function') { previousOnLoadIfAny(); } yourfunction(); } }());
当load
事件触发时,绑定到window.onload
将始终运行您的函数。 这仅在页面中的所有内容(包括图像等)完成加载后才触发。如果要在DOM完成加载后但在其他所有操作之前运行函数,则可以绑定到DOMContentLoaded
事件或使用jQuery之类的库(例如$(function(){ myFunction() });
)。
将函数放在<body>
末尾的好处是,从理论上讲,这意味着您的其余内容已经加载,并且不需要将函数绑定到load
事件。 有时这可行,但要视情况而定。
不,您放置的位置无关紧要-文档中的任何位置,当文档和所有外部资源(图像,脚本等)已加载时,它将触发。
因为onload
在所有外部资源之后触发,所以人们通常想使用DOMContentLoaded
来代替,而后者在HTML DOM准备就绪时触发。 这将使页面更具响应性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.