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