IE中的$(window).load()?

最近我遇到了一个神秘的问题,IE(6-8)一直在给我一个错误。 我不知道这是不是问题,但我认为是。

在包含jQuery的网站中打开F12开发人员工具,输入

$(window).load(function(){ alert("Wont able to see me"); }); 

并弹出一个错误:

“无法获取属性’slice’的值:object为null或undefined”

我做错了什么,或者其他什么?

使用IE10和IE9的最新jQuery(1.7.1)不会对我产生这样的错误。

作为旁注; 如果你想在dom准备就绪时执行某些事情; 试试这种方式;

 $(function(){ alert("Wont able to see me"); }); 

我相信这是将函数附加到domready事件的标准约定。

参考: jQuery文档

我最近发现IE的解决方法没有识别$(window).load()

 window.onload = function() { alert("See me, hear me, touch me!"); }; 

这与$(function(){})略有不同,因为它在加载所有元素之后执行,而不是在DOM准备好时执行。

我最近在另一个项目中实现了它,并且工作得非常好。

对于仍然遇到此问题的任何人,IE11(我测试的只有一个)如果侦听器在jquery ready函数内部,则不会触发load事件。 因此,将加载function拉到就绪function之外,它将在IE11中触发。

 //this is bad $(() => { //jquery ready window.onload = () => { //wont fire in IE cosole.log('window loaded'); } }); //this is good $(() => { //jquery ready cosole.log('dom ready'); }); window.onload = () => { //will fire in IE cosole.log('window loaded'); }