0

每次我用原型定义一个新元素时,例如:

var iframe = new Element('iframe', {
    name: 'preview_frame',
    id: 'preview_frame',
    src: 'form/' + formID + '?prev',
    allowtransparency: true,
    frameborder: 0
})

当我在属性列表中包含“名称”字段时,我得到一个 DOM 异常 5

但是,当我这样做时:

var iframe = new Element('iframe', {
    id: 'preview_frame',
    src: 'form/' + formID + '?prev',
    allowtransparency: true,
    frameborder: 0
})
iframe.name = 'preview_frame';

然后我没有得到错误。

4

1 回答 1

2

在您的浏览器中,“名称”可能是 JavaScript 中的保留字(或踩到另一个属性)。

为了在对象文字声明中为保留字指定对象属性,请将其放在引号中,如下所示:

var iframe = new Element('iframe', {
   "name": 'preview_frame',
   "id": 'preview_frame',
   "src": 'form/' + formID + '?prev',
   "allowtransparency": true,
   "frameborder": 0
})

请注意,虽然您不必将所有属性都放在引号中,但您可以。请参阅有关保留字的 Mozilla 文档,了解如何绕过它:Mozilla JS Reserved Words

于 2012-09-29T02:04:30.017 回答