簡體   English   中英

IE7中的Javascript InnerHTML與INPUT標簽混淆

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM