Javascript 在2个单独的.js文件中加载2个window.onload,仅加载1个函数
我有两个外部JavaScript文件,它们都通过window.onload调用函数。文件冲突,因此只有第二个js文件在工作 如何修复窗口。onload使这两个函数都能工作?我应该在HTML文件中这样做,还是可以在js文件中修复它 HTML标题为:Javascript 在2个单独的.js文件中加载2个window.onload,仅加载1个函数,javascript,conflicting-libraries,Javascript,Conflicting Libraries,我有两个外部JavaScript文件,它们都通过window.onload调用函数。文件冲突,因此只有第二个js文件在工作 如何修复窗口。onload使这两个函数都能工作?我应该在HTML文件中这样做,还是可以在js文件中修复它 HTML标题为: <link type="text/css" rel="stylesheet" href="house.css" /> <style type="text/css"></style> <script type="
<link type="text/css" rel="stylesheet" href="house.css" />
<style type="text/css"></style>
<script type="text/javascript" src="slideshow_library.js"></script>
<script type="text/javascript" src="slideshow.js"></script>
<script type="text/javascript" src="house.js"></script>
第二个window.onload位于2个js文件中:
slideshow.js:
var slideShow;
window.onload = function (slideShow) {
var params = {
//blahblahblah lots of code
}
}
幻灯片放映_library.js:
var $ = function(id) {
return document.getElementById(id);
}
var SlideShow = function( params ){
//blahblah blah even more code
}
SlideShow.prototype.displayImage = function(){
//blahblah blah even more code
}
SlideShow.prototype.displayNextImage = function(){
//blahblah blah even more code
}
SlideShow.prototype.displayPreviousImage = function(){
//blahblah blah even more code
}
SlideShow.prototype.togglePlay = function(){
//blahblah blah even more code
}
如果您被允许/熟悉使用JQuery,那么应该按照如下方式进行:
$(window).on('load', function() {
//<-- do the rest here..
});
last.js
不要使用旧的
窗口。onload
事件模型。正如您所注意到的那样,这不是很灵活,而且不再需要浏览器支持
jQuery使这变得容易;将每个JS文件中的window.onload=function
更改为$(function)
纯JS解决方案:将其更改为
window.addEventListener('load',function)
如果要组合这两个javascript文件,该怎么做?我在1个文件上有一个onload,但在另一个文件中没有。(我想捆绑我所有的javascript文件)@ganders:如果一个文件是用onload包装的,而另一个不是,那么你可以把这两个文件连接起来。
$(window).on('load', function() {
//<-- do the rest here..
});
(function(window, document) {
var t = setInterval(function() {
if('complete' === document.readyState) {
clearInterval(t);
alert('first js loaded ...');
}
}, 10);
})(window, document);
(function(window, document) {
var t = setInterval(function() {
if('complete' === document.readyState) {
clearInterval(t);
alert('last js loaded ...');
}
}, 10);
})(window, document);