浏览器在加载一个页面时,是按照自上向下的顺序加载的,读取到一行就运行一行,如果将script标签写到页面的上边,在代码执行时,页面还没有加载,页面没有加载DOM对象也没有加载,会导致无法获取到DOM对象。
将js代码编写到页面的下部就是为了,可以在页面加载完毕以后再执行js代码
onload事件会在整个页面加载完成之后才触发为window绑定一个onload事件
该事件对应的响应函数将会在页面加载完成之后执行,
这样可以确保我们的代码执行时所有的DOM对象已经加载完毕了
解决方式一:
可以将js代码编写到body的下边
<body><button id="btn">按钮</button><script>var btn = document.getElementById("btn"); btn.onclick = function(){ };</script></body>
解决方式二:
将js代码编写到window.onload = function(){}中
window.onload 对应的回调函数会在整个页面加载完毕以后才执行,
所以可以确保代码执行时,DOM对象已经加载完毕了
<script>window.onload = function(){var btn = document.getElementById("btn"); btn.onclick = function(){ }; };</script>
作者:DivMa
链接:https://www.jianshu.com/p/2e54f74a3d43