原型新元素名称

时间:2012-04-23 20:16:13

标签: prototypejs element

每次我用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';

然后我没有得到错误。

1 个答案:

答案 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