我有一个使用 new Element('div')
动态创建的元素,然后淡入、移动和淡出。在每个浏览器中,我的代码都按预期工作 - 除了 IE 之外的每个浏览器。
Internet Explorer 提示“未定义”为 null 或不是对象
,正如 Prototype's Lighthouse 上记录的那样。
为了得到错误,我写了,new Message('您的联系信息已保存');
我的 Message 类的源代码位于 this gist .
最佳答案
“Undefined is null of not an object”是一个非常基本的错误消息,可以在多种情况下产生(它是 JScript 的空指针异常的有效等价物)。所以你的错误不太可能与上面提到的相同。
但我没有收到该错误。我收到“无效参数”,这似乎是由以下原因引起的:
new Effect.Move(_div, {sync: true, x: '50%', y: 35, mode: 'relative' })
如果我将 % 更改为正常的整数像素值,它就可以正常工作。 x
是 documented仅接受整数值而不是 CSS 测量值; '%' 在其他浏览器中也不起作用(充当 0)。我猜你已经创建了这个功能!
正如 Fabien 提到的,您还需要插入一些 var
语句,否则您会在全局变量上乱写乱画,如果您尝试创建其中两个,则 Message 将会崩溃。另外,请注意不要在数组文字中留下尾随 ,
(由于注释行),因为这会使 IE 感到困惑。
关于javascript - IE8 提示 Prototype, "' undefined' 为 null 或不是对象”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1570519/