【问题标题】:How to retrieve XML DOM in IE?如何在 IE 中检索 XML DOM?
【发布时间】:2010-10-31 06:30:49
【问题描述】:

我有一个这样的 HTML 表单和 iframe:

<form id="frmUpload" target="ifrTarget" action='http://....asmx/SampleMethod'>
  <input name="title" /><br />
  ...
  <input type="submit"/>
</form>
<iframe id="ifrTarget" name="ifrTarget"></iframe>

Action 属性指向我的 ASP.NET Web 服务。提交表单时,IFRAME 会被生成的 XML 填充。我需要检索这个 XML 文档的 DOM。到目前为止,我的代码如下所示:

var iframe = document.getElementById("ifrTarget");
var root = iframe.contentWindow.document.documentElement;

这在 FireFox、Chrome 和 Opera 浏览器中完美运行。但它在 IE 6 和 7 中不起作用。据我所知,在 IE 中,我得到了 IE 内部构建的 HTML 文档的 DOM,以显示 XML 的语法突出显示。我需要的是不修改底层 XML。在IE中可以实现吗?


有充分的理由坚持使用表单和 iframe,而不是通过 AJAX 调用 Web 服务。不幸的是,在这种特殊情况下,AJAX 不适合我。

【问题讨论】:

  • 您能解释一下为什么 AJAX 不适合您吗?

标签: xml internet-explorer dom internet-explorer-6 internet-explorer-7


【解决方案1】:

尝试将进入 IFRAME 的 XML 与(甚至不存在的)CSS 相关联。这应该可以防止 IE 漂亮地打印 XML。那么 contentWindow.document 应该包含接收到的 XML 的 DOM。或者您可能希望将文档内容检索为字符串并将字符串解析为 XML。 CSS通过如下处理指令与XML关联:

【讨论】:

    【解决方案2】:

    不,您无法通过 IE 以这种方式获取未修改的 XML。 XML“漂亮打印机”MIME 过滤器将 IE 看​​到的 XML 源替换为用户显示的 HTML。

    使用 XHR 等是唯一真正的解决方法。

    【讨论】:

      猜你喜欢
      • 2011-10-07
      • 2015-03-25
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 2013-03-26
      • 2020-02-04
      • 2012-09-28
      • 2010-09-07
      相关资源
      最近更新 更多