繁体   English   中英

window.onload在Javascript中的位置

[英]Position of window.onload in Javascript

我有这样的JavaScript代码

<script type="text/javascript">
window.onload=myFunction;
</script>

<head></head>标记和</body>标记之前使用上面的代码片段有什么区别,因为我想在页面加载后调用我的函数。

基本上没有实际差异,但我建议

  1. 将代码放在底部,因为您需要使用脚本(blocking-rendering标签),所以最好将其放在文档的末尾。

  2. 为了避免这样的破坏性分配:编写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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM