使用IE捕获HTML内容

时间:2012-04-23 01:49:49

标签: javascript jquery dom

我正在尝试获取当前HTML文档的内容以供进一步处理。 在有用的浏览器中,我可以很容易地做到这一点。 (见http://jsfiddle.net/HYyH4/

在IE中查看该链接,我无法从该命令获得任何输出 - “无法设置innerHTML属性。此操作的目标元素无效。”

有没有其他方法可以完成这样的事情,而无需手动重写整个DOM?我最终希望能够将它拉入jQuery,这样我就可以轻松删除元素,所以jQuery.html()上没有失败的东西也会很好:)

感谢您提供任何帮助/反馈!

2 个答案:

答案 0 :(得分:1)

我不知道您为什么要复制文档的来源,所以我不能说下面是否有用,但它返回的HTML元素与原始的DOM完全相同:

var doc = document.getElementsByTagName('html')[0];
var newDoc = doc.cloneNode(true);
alert(newDoc.innerHTML);

在您的情况下,是否合适取决于您。请注意,克隆的HTML元素将(取决于浏览器)缺少部分或全部动态添加的侦听器,并且表单控件值可能不同。

答案 1 :(得分:0)

您可以尝试使用documentElement来提取文档根节点。

  

返回作为文档根元素的Element(for   例如,HTML文档的元素。)

适用于IE 5.5+。继mdn article讨论它以获取更多信息。

<强> Live Demo

还要注意.. jsfiddle在IE中根本不可行,所以如果那就是你用来测试的那个问题可能会成为问题的一部分。