首页 > web前端 > 绑定window的onload事件不执行

绑定window的onload事件不执行

2012年1月10日 发表评论 阅读评论

今天碰到一个奇怪的问题,在一个外部的js文件中给页面绑定了onload事件,在FF下能正确执行,IE6下却没有执行。最开始以为是绑定事件写的有问题,后来排除,经过多方调试,依然没有找到问题所在。最后还是香烟给我灵感,突然想到会不会是页面是不是已经页面load完了才执行绑定onload的事件?赶紧用测试一把,把window的onload换成document.body的click,点击页面后成功执行了。基本可以肯定是页面load完了才进行绑定操作的。由于是在页面加载的js中用动态加载的方式加载了另外一个js,在另外一个js中执行的绑定事件,也就是说这样操作在ie6下可能会造成问题。现在知道问题所在,那解决问题办法就是先用document.readyState(complete表示加载完成)查看页面是否已经load完成,如果已经完成就可以直接执行,否则就绑定onload事件。

兼容主流的浏览量的绑定事件通用方法,

function addEvent(obj, event, callback) {
	if (obj.addEventListener) {
		obj.addEventListener(event, callback, false);
	} else {
		obj.attachEvent("on" + event, callback);
	}
}
当然也可以用document.readyState来达到onload的效果,示例如下:
(function(){
	if (document.readyState && document.readyState == 'complete') {
		// doing
	} else {
		setTimeout(arguments.callee, 10);
	}
})();



欢迎转载,转载请注明文章出处,谢谢!
垃圾有点差凑合看还不错很精彩 (1 人打了份: 平均分:5.00)
Loading...Loading...
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量