加载多个window.onload = function () {}事件冲突的解决方法

JavaScript1437浏览0条评论discuz

最近在学写discuz的插件,弄了个幻灯片js,需要用到window.onload = function ();结果跟discuz的冲突了。

window.onload = function (){
alert('跟DZ的冲突了,弹不出来!!!')
};

本来就不太熟JS,搞了半天不知道咋办,后来网上看到下面这个方法解决了。

function hehe() {
alert('呵呵');
}

function haha() {
alert('哈哈');
}

if (document.all) {
window.attachEvent('onload')
}
else {
window.addEventListener('load', haha, false);
window.addEventListener('load', hehe, false);
}

另一种也可以试试

<html> 
<head> 
<title>test</title> 
<script language="javascript"> 
window.onload = function() {
    alert('1');
};
</script> 
</head> 
<body>
	<h1>呵呵</h1>
	<script type="text/javascript">
		var saved;
		if (typeof window.onload == 'function') {
			saved = window.onload;
		}
		window.onload = function() {
			if (saved) saved();
			alert('2');
		};
	</script>
</body> 
</html>


成功解决了DISCUZ和自己调用的window.onload = function ()冲突问题。

本文地址:http://wuheng.net/blog_63.html 转载请注明出处

分享到: