获取当前页面的html代码,并使用post方法将其传递给变量

时间:2014-01-06 23:35:01

标签: javascript jquery

我正在尝试使用方法POST捕获并传递页面的当前HTML代码。我正在使用:

var html_document = document.documentElement.innerHTML;

document.body.innerHTML += '<form id="myform" action="myurl.php" method="post" target="_blank"><input type="hidden" name="html_document_name"  value="'+ html_document +'"></form>';
document.getElementById("myform").submit();

但在myurl.php中,html_document值为空。如果我尝试:

var html_document = 'test';

它正常工作。如果我试试

alert(html_document);

它正常工作。

2 个答案:

答案 0 :(得分:1)

使用标记的jquery特定解决方案,请参阅下面的代码以捕获HTML。

var html = $("html").html();

If you want to also capture the hmtl tags you could concatenate them to the html like this:
function getPageHTML() {
  return "<html>" + $("html").html() + "</html>";
}

答案 1 :(得分:0)

您的请求未及时完成,因为您没有等待它。通过警报,它是一个阻止呼叫,因此它将起作用。

使用jquery ajax处理您的请求。并在成功函数中进行处理。

 $.ajax(
    {
        url: someUrl,
        type: 'POST',
        success: function (data) { someSuccessFunction(data); },
        error: function (jqXHR, textStatus, errorThrown) { someErrorFunction(); }
    });