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

お使いのブラウザでは、"name" が 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 に答える