我有两个单独的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);

07-24 16:44
查看更多