Opera, 作為 A-Grade 瀏覽器,在現(xiàn)在的前端開發(fā)中務(wù)必支持。它很優(yōu)秀,很不幸,bug是每個瀏覽器都不可避免的問題,Opera亦難免。說說我發(fā)現(xiàn)的一個關(guān)于 cloneNode 的問題。
問題:
假設(shè)我們有一個 Form 節(jié)點(node)的引用,姑且名之為 elForm,現(xiàn)在需要克隆一份,可以這么做:var elFormClone = elForm.cloneNode(true).
在插入這份克隆到 DOM 樹中后,IE, Firefox 均未發(fā)現(xiàn)問題。Opera會產(chǎn)生這樣的問題:表單內(nèi)的字段無法引用。比如,假設(shè)剛才我們的elForm 有一個 <input name="title" … />, 此時你無法通過 elFormClone.title 或者 elFormClone[‘title’] 獲取它。
解決方案:
使用 document.createElement 創(chuàng)建 form 元素,然后設(shè)置該元素的 innerHTML(感謝 MS 發(fā)明了它) 為elForm 的 innerHTML 即可:
var elFormClone = document.createElement(‘form’);
// 設(shè)置一些elForm的原屬性,有必要的話
…
elFormClone.innerHTML = elForm.innerHTML;
// 處理這個clone, 該咋辦就咋辦了
…
新聞熱點
疑難解答