例如,此类链式事件不起作用,因为事件只会被触发一次。
window.addEventListener('DOMContentLoaded', function () {
alert('This should show up');
window.addEventListener('DOMContentLoaded', function () {
alert('This will never show up');
});
});
特别值得怀疑的是,您将脚本放在HTML的底部,因为在DOM已经加载时它们将被解析。更多,如果您的脚本在事件发生之前有很多事情,因为事件可能在解析器到达addEventListener
语句之前被触发。
<!DOCTYPE html>
<html>
<head>
...
<script src="myscript.js"></script>
</body>
</html>
和javascript:
// myscript.js
// ... many things ...
window.addEventListener('DOMContentLoaded', function () {
alert('Will this always happen?');
});
我已经尝试了这个并且它有效,但我的问题是,如果有任何情况,它不会,如果有任何保证,它将被解雇至少一次,也在离线。
答案 0 :(得分:1)
不,只要包含DOMContentLoaded
处理程序的脚本在</body>
之前的文档中,而不是在嵌套之类的其他事件处理程序中,就不会出现无效的情况。 <{1}}处理程序或DOMContentLoaded
处理程序,它始终有效。
不确定“离线”是什么意思,但只要文档可以获取并加载,无论是否在线,事件都会触发?