有没有办法使用jQuery选择器来获取document.documentElement.outerHTML返回的相同字符串?

时间:2011-02-18 02:38:48

标签: javascript jquery dom

我想知道是否有使用Javascript的替代方法:document.documentElement.outerHTML 可能利用jQuery选择器和其他jQuery方法(如果存在)。或者,如果有任何其他更有效的方法来使用Javascript和Jquery获取包含网页的整个源代码的字符串。

3 个答案:

答案 0 :(得分:2)

var source = "<html>" + $("html").html() + "</html>";

这是一种快速简便的方法,但就像有人说的那样,它只会在<html></html>标签内返回HTML。它不会包含在<html></html>标记之外找到的内容,例如doctype。

要获取所有内容,您可以使用jQuery.ajax()请求页面并获取整个shebang。

var source = 'Unable to retrieve source code';
$.ajax(
    "your/webpage/here.html",
    {
        async    : false,
        success  : function(data) {source = data;}
    }
);
alert(source);    // or whatever

在此示例中,请求是同步进行的,因此我们可以在请求返回后对源执行任何操作。您可以异步进行调用,并将所有代码放入成功函数中。

这是小提琴 http://jsfiddle.net/4rkdF/

答案 1 :(得分:0)

只使用jQuery我可能会做这样的事情:

$('#theDesiredElement').wrap('<div/>').parent().html();

http://jsfiddle.net/robert/d4WCg/

答案 2 :(得分:0)

示例标记:

<div id="help"> help </div>

的jQuery

var outerHTML = $('<div>').html($('#help')).html();

使用<div>动态创建$('<div>')。然后按<div id="help">获取$('#help')。然后将$('#help')放入创建的div中。并获取创建的div的html。