每次我用Prototype定义一个新元素,例如:
var iframe = new Element('iframe', {
name: 'preview_frame',
id: 'preview_frame',
src: 'form/' + formID + '?prev',
allowtransparency: true,
frameborder: 0
})
当我在属性列表中包含'name'字段时,我得到了一个DOM Exception 5
然而,当我这样做时:
var iframe = new Element('iframe', {
id: 'preview_frame',
src: 'form/' + formID + '?prev',
allowtransparency: true,
frameborder: 0
})
iframe.name = 'preview_frame';
然后我没有得到错误。
答案 0 :(得分:2)
在您的浏览器中,"名称"可能是JavaScript中的保留字(或踩到另一个属性)。
为了在object-literal声明中指定保留字的对象属性,请将其放在引号中,如下所示:
var iframe = new Element('iframe', {
"name": 'preview_frame',
"id": 'preview_frame',
"src": 'form/' + formID + '?prev',
"allowtransparency": true,
"frameborder": 0
})
请注意,虽然您不必将所有属性都放在引号中,但您可以。 有关如何绕过它的保留字,请参阅Mozilla文档:Mozilla JS Reserved Words