2012-04-23 61 views
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'; 

然後,我沒有得到錯誤。

+0

它似乎適用於我(Chrome 18):http://jsfiddle.net/keLgs/ – 2012-04-23 20:23:41

回答

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