在HTML页面的JavaScript onload事件和滑动脚本之间的差异(difference b

2019-08-04 18:29发布

是什么这两段代码之间的差异

示例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。

Answer 1:

window.onload使得它使得脚本运行之前所有的DOM元素加载-也就是说,如果你的脚本修改或使用DOM元素,那么它应附window.onload (或等同的东西在一个框架)。 如果它是独立于DOM的,你可以使用。 请参阅Mozilla开发者网络页面了解更多信息。 需要注意的是不要从运行内嵌脚本window.onload一旦分析器达到可以运行-它不会等待DOM的其余部分被加载。



Answer 2:

页面完成加载,对方只要它被解析。如果你想看到的差异复制两个代码片段(复制粘贴两次),看他们如何表现后的第一个执行



Answer 3:

样品1和2做同样的事情。 然而,在window.onload在样品1时执行HTML内容(和所有的图像,样式表和远程脚本)满载(未当所有的DOM元素被加载)的功能。

样品2不一样的样品1,但立即执行脚本。 你会看到不同,当你有一个网页,需要一段时间才能完全加载。 因此,它似乎他们执行在同一时间(而事实上,样品2后的window.onload执行)你的测试页面可能已经基本。

当你需要在页面加载后执行JavaScript代码的window.onload正常使用。 在样品两个内嵌脚本可以,如果你想有一个特定的DOM元素已经在浏览器中,例如加载后的Javascript立即执行使用。



Answer 4:

onload当页面加载完全包括图像,音频等,但直接写语句将立即执行事件触发。 因此,onload事件警报将另一个触发之后。

检查这个DEMO



Answer 5:

另一个重要的区别是,由于第二个脚本立即执行,您将无法访问其中谈到该脚本之后的任何DOM元素。

例如,如果你刚才的标签结束前一个DIV元素,你不能使用的document.getElementById(或类似的DOM访问功能),以获得特定的DIV。

但随着第一个脚本,将只有在页面加载执行,您可以在DOM访问任何元素



文章来源: difference between javascript onload event and plain script in the html page