【发布时间】:2011-06-17 08:17:37
【问题描述】:
the demo is here
(无法在 jsfiddle 上重现它,因为它们不允许 ajax 达到足够的程度)
想象一下,你的页面上有 iframe
<iframe id="if1" src="/some/url"> </iframe>
/some/url 返回简单文本:<form>text</form><br/>
而且,一旦 iframe 被加载,您就可以从 Javascript 访问它的内容。
var io = document.getElementById('if1');
alert(io.contentWindow.document.body.innerHTML);
显然,普通浏览器会完全按原样返回内容。但是 internet explorer 8 返回了一些有趣的东西
text</FORM><BR>
即使 iframe 上的右键单击/查看源代码显示正确的内容:<form>text</form><br/>
我没有尝试其他 IE 版本。
你以前见过这个问题吗?这是我在将 webapp 适应 IE 时遇到的问题的一个非常简化的版本。基本上,我通过iframe(不是xhr,我需要上传文件)进行ajax请求,并返回html片段。
非常感谢!
【问题讨论】:
-
嗯。您是否尝试过为内部框架提供完整、有效的结构 (
<html><head>....)? -
另外,我注意到您没有将
content-type与内部文档一起发送。这不应该有什么不同,因为 .html 会自动被解释为 HTML,但发送它仍然是一件好事 -
同意@Pekka 的第一点——iframe 希望它的内容是一个完整的HTML 文档。
-
@Pekka 我正在发送 html 片段以响应 ajax 请求。但这是一个有趣的想法,我应该能够创建“假包装”。
-
@Pekka @Spudley 但是在 XHR 之前人们如何解决这个问题,当他们更频繁地使用 iframe 进行 ajax 时?
标签: javascript html internet-explorer iframe