2012-03-10 100 views
0

最近我遇到了一个神秘的问题,IE浏览器(6-8)不断抛出一个错误。我不知道这是否是问题,但我认为是。

jQuery included website打开了F12开发人员工具,输入

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

而一个错误会弹出:

“无法获得属性‘片’的值:对象为空或undefined“

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

+0

jQuery的什么版本? – 2012-03-10 23:22:48

+0

我没有得到那个错误。但是这个加载处理程序不会执行,因为已经发生了''load''事件(除非你在设置页面的时候以某种方式设法从控制台执行代码)。 – 2012-03-10 23:22:58

回答

0

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

作为一个附注;如果您希望在dom准备好时执行某些操作; 试试这种方式;

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

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

参考:jQuery Documentation

+7

'$(window).load()'和'$(function(){})'不是一回事。文档就绪在窗口加载之前触发。 [进一步说明](http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/) – 2012-03-10 23:20:42

+4

'$(window).load(fm)'与'$(fn)不是一回事)'。第一个等待所有页面资源加载(包括图像)。第二个只等到DOM被加载。 – jfriend00 2012-03-10 23:21:09

+0

对不起,我意识到不同之处,但是,长时间没有附加任何东西给window.onload,我的大脑直接转向domReady :)。我编辑答案就好像我第一次没有搞砸了。 – 2012-03-10 23:23:17

6

我最近发现了一种绕过IE浏览器不承认$(window).load() ...

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

这比$(function(){})有点不同,因为它执行后,而不是所有的元素都装到DOM何时准备就绪。

我最近在另一个项目中实现了这一点,它的工作非常好。

相关问题