IE <= 8从AJAX接收时删除标记

我正在进行AJAX POST调用以获取一些HTML。 我把那个HTML并将其注入DOM。 除了IE <= 8之外,每个浏览器中的一切都运行良好和花花公子。似乎IE正在解析传入的HTML,因为当我将其记录到控制台/警告它时,标签是大写的。

它正在删除的行:

非常奇怪,因为结束标记在那里,但开始标记不是。 该调用是一个标准的jQuery POST($ .post())。

更新:

结束放弃并将其放入嵌入式textarea并重新注入DOM:

  

… 别的地方 …

 if ($.browser.msie && parseFloat($.browser.version) < 9) { ui.panel.innerHTML = $(".ieHackTextArea").val(); // jQuery injection doesn't work } 

我今天碰到了完全相同的问题并设法通过在

之前插入一个空的


来修复它,它以某种方式阻止了IE8 (未在其他版本中测试过)移除

您可以尝试将所有表单包装到

以查看它是否更好。

我遇到了与对象相同的问题,这是我的解决方案,以确保它在IE8中正常工作。

我有完全相同的情况,同样的问题略有扭曲。 我得到一个输入类型=隐藏标记,删除以及表单标记。 我没有找到发生这种情况的原因。 自去年8月以来,有没有人发现这个问题的新内容?

此外,我尝试将表单包装在div标签中,没有任何改变。 如果我写一些文字,或者$ nbsp; 在表单标记上方的一行上,表单将呈现。

我也可以确认这个问题也在IE7中(如果重要的话)。

解决方案快速而简单,只需从表单标记的action =“”属性(仅在URL中)中删除最后一个斜杠。

例:

错(IE)

 

正确

 

只删除form action =“”末尾的斜杠。

在你的javascript处理程序中使用navigator.userAgent来识别浏览器并应用suiatble逻辑。 与“CSS hack”相比,它是直截了当的。 你可以在这里参考http://www.useragentstring.com/pages/Internet%20Explorer/

IE的userAgent很可能会携带字符串MSIE(Miscrosoft internextExplorer或许:D)

基本上:

 if(navigator.userAgent.indexOf('MSIE 7.0') > -1){ /* Do watever suitable for IE7 here */ }else if(navigator.userAgent.indexOf('MSIE 8.0') >-1){ /* Do watever suitable for IE8 here */ }else{ /* The rest... */ }