Javascript获取当前页面的html

Javascript获取当前页面的html,javascript,html,dom,Javascript,Html,Dom,是否可以通过用户所做的所有修改获得页面的html(见下文) 例如,如果文本已经输入到文本区域,或者选中了复选框,那么这也应该反映在html中。我之所以想这样做,是为了拍摄用户页面的“截图” 以下答案是jQuery('html')的变体,不反映用户所做的更改。您可以使用jQuery: var html = $('html') 如果您有一个名为“field”的字段: 如果您有一个复选框,那么操作实际上是相同的。希望这是有帮助的。 如果你想要一个截图,你应该考虑一个工具,比如。仅仅拉HTML并不能得

是否可以通过用户所做的所有修改获得页面的html(见下文)

例如,如果文本已经输入到文本区域,或者选中了复选框,那么这也应该反映在html中。我之所以想这样做,是为了拍摄用户页面的“截图”

以下答案是jQuery('html')的变体,不反映用户所做的更改。

您可以使用jQuery:

var html = $('html')
如果您有一个名为“field”的字段:


如果您有一个复选框,那么操作实际上是相同的。希望这是有帮助的。

如果你想要一个截图,你应该考虑一个工具,比如。仅仅拉HTML并不能得到输入字段

其他答案将得到HTML,具体来说,但没有输入值

$('html').html();

根据其他答案进行调整。在获取HTML之前,可以循环所有输入元素并手动设置
属性,这将反映在HTML中:

$('a').click(function(e){
    setValueProperties();
    var html = getHtml();
    alert(html);
});

function setValueProperties(){
    $('input').each(function(){
       $(this).attr("value", $(this).val()); 
    });
}

function getHtml(){
    return document.documentElement.outerHTML;
}


注意:您可能需要根据您的具体需要改进此函数,但希望它能帮助您实现所需功能。

除了此功能,还有什么其他功能吗?嗯。。。看起来很复杂。有更简单的方法吗?@musefan:是的,你可以减少变量的字符数:)这行不通。例如,如果我有文本区域中的文本,它不会反映在html中。@LanguagesNamedAfterCofee-不,当用户键入内容时,标记中的value属性不会更新,value属性是,因此如果您的目标是从表单元素中获取用户输入的文本,获取整个页面的标记不是这样做的。重复的。一小时内就差不多了。@FelixKling这怎么是复制品?另一个问题只是询问页面的html。我希望文本区域中输入的文本、选中的复选框等能够反映在htmlAh中,我错过了
输入
-更改部分。“用户所做的修改”这句话是一个相当含糊的说法。DOM修改也是修改(这可能是对用户交互的响应)?这一定是我见过的问题中对问题最糟糕的描述了吧?谢谢,尽管html2canvas很重,但我想这是没办法的。
$('a').click(function(e){
    setValueProperties();
    var html = getHtml();
    alert(html);
});

function setValueProperties(){
    $('input').each(function(){
       $(this).attr("value", $(this).val()); 
    });
}

function getHtml(){
    return document.documentElement.outerHTML;
}