2

如何使用 jQuery 返回页面的完整 html?

我不能做

return $('html').html()

或者

return "<html>" + $("html").html() + "</html>";

因为页面中可能根本没有 html 标签。我不能使用 class 或 id 标签,因为这不是我可以控制并且可以更改的东西。所以用例是,如果我传递一个 url,我需要返回页面的完整 html,并且该页面可能有也可能没有 html 标记。

4

3 回答 3

3

你试过了吗:

$(document).html();

编辑:这在 Firebug 中对我不起作用,所以我不确定它是否适合你。

于 2012-06-28T17:14:15.523 回答
2
document.documentElement.outerHTML;

对于较旧的 Firefox,您需要使用.innerHTML,然后连接<html>标签。


“该页面可能根本没有 html 标签”

如果您没有<html>标签,浏览器将自动插入它们。如果您想要原始文档的精确表示,请按照@Rab Nawaz 的建议提出 AJAx 请求

于 2012-06-28T17:19:30.890 回答
1

对于它的价值,$("html")将在所有正常情况下返回一个元素,即使源文档不包含<html>元素。这是因为浏览器会自动将某些必需的元素(包括<html><head><body>)插入到 DOM 树中,即使它们没有在源文档中指定。

我能想到的唯一例外(你不会从中得到任何东西$("html"))是如果你对一个不是 HTML 的 DOM 树运行 JQuery——例如,如果你将 JQuery 加载到一个 SVG 文档中。不过,你这样做会很疯狂。:)

于 2012-06-28T17:18:11.317 回答