Javascript IE8抱怨“原型”';未定义';是否为空或不是对象;
我有一个使用Javascript IE8抱怨“原型”';未定义';是否为空或不是对象;,javascript,internet-explorer,prototypejs,scriptaculous,Javascript,Internet Explorer,Prototypejs,Scriptaculous,我有一个使用新元素('div')动态创建的元素,然后淡入、移动和淡出。在每个浏览器中,我的代码都能按预期工作——除了IE之外,其他浏览器都能 Internet Explorer抱怨说,'undefined'为空或不是一个与上记录的完全相同的对象 为了得到错误,我写了,newmessage(“您的联系信息已保存”) my Message类的源代码位于。“Undefined is null of not a object”是一个非常基本的错误消息,可以在大量情况下生成(它是JScript有效的空指针
新元素('div')
动态创建的元素,然后淡入、移动和淡出。在每个浏览器中,我的代码都能按预期工作——除了IE之外,其他浏览器都能
Internet Explorer抱怨说,'undefined'为空或不是一个与上记录的完全相同的对象
为了得到错误,我写了,newmessage(“您的联系信息已保存”)代码>
my Message类的源代码位于。“Undefined is null of not a object”是一个非常基本的错误消息,可以在大量情况下生成(它是JScript有效的空指针异常等价物)。因此,您的错误不太可能与上面提到的相同
但我不明白那个错误。我得到“无效参数”,这似乎是由以下原因引起的:
new Effect.Move(_div, {sync: true, x: '50%', y: 35, mode: 'relative' })
如果我将%更改为正常的整数像素值,则效果良好x
表示只接受整数值,不接受CSS度量;“%”在其他浏览器中也不适用(充当0)。我猜这是你编造的
正如Fabien提到的,您还需要插入一些var
语句,否则您在全局上涂鸦,如果您尝试创建其中两个,消息将爆炸。另外,注意不要在数组文本中留下尾随的,
(由于注释行),因为这会混淆IE。您使用的是最新的原型吗?1.6.0没有适当的IE8支持,尤其是在创建新元素时。我使用的是谷歌托管的Prototype 1.6.1.global变量?我很尴尬,我以为声明为var的变量是全局变量。那太糟糕了。为什么global是默认的作用域?而且,这不是一个特别礼貌的评论。我认为他的问题与新效果后额外的逗号有关。Fade(_div,{sync:true}),因为下一行的注释。我真的很喜欢IE的错误…糟糕的是,它并不是我的全部意志。说真的,全局作为默认作用域让我很难过。是的,默认全局在JavaScript语言中是一个严重的设计错误,而不是唯一的错误-(