我有两个单独的JavaScript文件链接到一个HTML文档,当我运行它时,似乎第二个JS文件会覆盖第一个JS文件。我认为这与在每个文件中调用window.onload有关,但不确定如何解决。
我试过在一个JS文件上使用window.onloadend,在另一个JS文件上使用window.onload,但结果相同,window.onloadend是唯一执行的文件。
file1.js
function init() {
applyFunction();
prefillForm();
var applyForm = document.getElementById("applyForm");
applyForm.onsubmit = validate;
}
window.onload = init;
file2.js
function init() {
currentPage();
timer();
}
window.onload = init;
最佳答案
每当您分配给on-
属性时,您都将覆盖该属性先前附加的内容,并且在事件触发时,将仅运行最新的处理程序。使用addEventListener
代替:
window.addEventListener('load', init);
(在两个文件中代替
.onload
行)或者,如果您不必等待整个文档加载(包括图像之类的东西),则可以改为监听DOMContentLoaded,它将更快地触发。 DOM和所有元素将被填充,尽管并非所有资源都已下载:
window.addEventListener('DOMContentLoaded', init);