最近我遇到了一个神秘的问题,IE(6-8)一直在给我一个错误。我不知道这是不是问题,但我认为是。
在jQuery included website中打开F12开发人员工具,输入
$(window).load(function(){
alert("Wont able to see me");
});
将弹出一个错误:
“无法获取属性'slice'的值:object为null或undefined”
我做错了什么,或其他什么???
答案 0 :(得分:7)
我最近找到了解决IE无法识别$(window).load()
...
window.onload = function() {
alert("See me, hear me, touch me!");
};
这与$(function(){})
略有不同,因为它在加载所有元素后执行,而不是在DOM准备好时。
我最近在另一个项目中实现了它,它运行得非常好。
答案 1 :(得分:2)
对于仍然遇到此问题的任何人,如果侦听器位于jquery ready函数内部,则IE11(仅我测试过的一个)不会触发load事件。因此,将加载功能拉到就绪功能之外,它将在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');
}
答案 2 :(得分:-1)
IE10和IE9的最新jQuery(1.7.1)对我来说不会产生这样的错误。
作为旁注; 如果您希望在dom准备就绪时执行某些操作; 试试这种方式;
$(function(){
alert("Wont able to see me");
});
我相信这是将函数附加到domready事件的标准约定。