是什么这两段代码之间的差异
示例1:
<script type="text/javascript">
function myfunc () {
alert('hi');
}
window.onload = myfunc;
</script>
示例2:
<script type="text/javascript">
alert('hi');//no function used
</script>
代码两件提前执行successfully.Thanks。
将window.onload
使得它使得脚本运行之前所有的DOM元素加载-也就是说,如果你的脚本修改或使用DOM元素,那么它应附window.onload
(或等同的东西在一个框架)。 如果它是独立于DOM的,你可以使用。 请参阅Mozilla开发者网络页面了解更多信息。 需要注意的是不要从运行内嵌脚本window.onload
一旦分析器达到可以运行-它不会等待DOM的其余部分被加载。
页面完成加载,对方只要它被解析。如果你想看到的差异复制两个代码片段(复制粘贴两次),看他们如何表现后的第一个执行
样品1和2做同样的事情。 然而,在window.onload在样品1时执行HTML内容(和所有的图像,样式表和远程脚本)满载(未当所有的DOM元素被加载)的功能。
样品2不一样的样品1,但立即执行脚本。 你会看到不同,当你有一个网页,需要一段时间才能完全加载。 因此,它似乎他们执行在同一时间(而事实上,样品2后的window.onload执行)你的测试页面可能已经基本。
当你需要在页面加载后执行JavaScript代码的window.onload正常使用。 在样品两个内嵌脚本可以,如果你想有一个特定的DOM元素已经在浏览器中,例如加载后的Javascript立即执行使用。
onload
当页面加载完全包括图像,音频等,但直接写语句将立即执行事件触发。 因此,onload事件警报将另一个触发之后。
检查这个DEMO
另一个重要的区别是,由于第二个脚本立即执行,您将无法访问其中谈到该脚本之后的任何DOM元素。
例如,如果你刚才的标签结束前一个DIV元素,你不能使用的document.getElementById(或类似的DOM访问功能),以获得特定的DIV。
但随着第一个脚本,将只有在页面加载执行,您可以在DOM访问任何元素
文章来源: difference between javascript onload event and plain script in the html page