[英]Javascript InnerHTML in IE7 messing with INPUT tags
當我收到包含input [type = text]元素的元素的innerHTML時,將在IE7中刪除值和id周圍的語音標記,即
<input type="text" id="test" value="test" />
變為:
<input type="text" id=test value=test />
除了我正在使用一個采用html段並將JSON綁定到其上的JQuery插件之外,這還不錯。 這意味着如果我有一個模板:
<div id="template"><input type="text" value="${ValueToBind}" /></div>
當我通過document.getElementByID(“ template”)。innerHTML檢索此文件時,我得到:
<input type="text" value=${ValueToBind} />
因此,如果我用空格將字符串綁定,即“這是一個測試”,則輸出為:
<input type="text" value=this is a test />
顯然,這是無效的html並導致我的應用程序崩潰。 我真正需要做的是按原樣檢索模板中的html,並且沒有IE嘗試做任何有用的操作,例如刪除“語音標記”。
干杯,克里斯。
如果問題是特定於IE7的,則快速解決方法可能是使用重新插入引號的代碼為IE7添加IE條件注釋 。
我相信這不是您可以直接解決的問題,因為沒有引號的html就是IE7內部表示DOM節點的方式。
我的最佳方式以確保您獲得完全正確的模板是讀取每個節點自己,而不是內部的HTML的每個屬性,然后將它們寫出來與引號。
看到
innerHTML刪除Internet Explorer中的屬性引號
對於其他想法。
使用jQuery的.html()
http://docs.jquery.com/Attributes/html
通常也將是執行此操作的“ jQuery方式”,而不是.getElementById
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.