Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP检索页面源代码(在javascript运行之后)?_Javascript_Php_Debugging - Fatal编程技术网

如何使用PHP检索页面源代码(在javascript运行之后)?

如何使用PHP检索页面源代码(在javascript运行之后)?,javascript,php,debugging,Javascript,Php,Debugging,在我的页面上,javascript在页面加载时添加了很多类(取决于页面)。 如何等待javascript添加了这些类,然后使用javascript或PHP从其他文件获取HTML?看起来您需要的是。如果您使用的是谷歌浏览器,您也可以使用 这些工具将允许您查看页面的实时DOM,以及跟踪javascript所做的任何更改。像这样的工具对我们这些开发人员来说是必不可少的。除了从页面本身的JavaScript中接收呈现的HTML源代码外,您不能通过其他资源接收呈现的HTML源代码。JS完成HTML中的所有

在我的页面上,javascript在页面加载时添加了很多类(取决于页面)。
如何等待javascript添加了这些类,然后使用javascript或PHP从其他文件获取HTML?

看起来您需要的是。如果您使用的是谷歌浏览器,您也可以使用


这些工具将允许您查看页面的实时DOM,以及跟踪javascript所做的任何更改。像这样的工具对我们这些开发人员来说是必不可少的。

除了从页面本身的JavaScript中接收呈现的HTML源代码外,您不能通过其他资源接收呈现的HTML源代码。JS完成HTML中的所有内容更改后,您可以将HTML源代码发布到服务器上的PHP并保存它

伪代码:

// JavaScript using jQuery
setTimeout("jQuery.post('/catch.php', jQuery(document));", 2000);

// on the server side create a catch.php file
<?php 
file_put_contents('./tmp.txt', 'php://input');
//使用jQuery的JavaScript
setTimeout(“jQuery.post('/catch.php',jQuery(document));”,2000);
//在服务器端创建catch.php文件
你不能,很容易

JavaScript修改内存中的DOM。这是与最初发送到浏览器的“源”完全不同的实体


您可以做的最接近的事情是通过JS构建DOM的XML表示,并通过AJAX将其发送回服务器。我无法理解您为什么希望/需要这样做。

页面加载完毕后,使用Ajax将呈现的源代码发布回PHP脚本

$(function()
{
    var data = $('body').html();
    $.post('/path/to/php/script', data);
});

(本例假设您正在使用jQuery)

打开您的书签/收藏夹,用它创建一个新的书签/收藏夹,然后在页面加载后单击它:

javascript:IHtml=document.documentElement.innerHTML;
LThan=String.fromCharCode(60);
LT=new RegExp(LThan,'g');
IHtml=IHtml.replace(LT,'&lt;');
IHtml=IHtml.replace(/  /g,'&nbsp; ');Out ='';Out+='<!DOCTYPE html PUBLIC "-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN"';Out+='  "http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd">';
Out+='<html xmlns="http:\/\/www.w3.org\/1999\/xhtml" xml:lang="en-US" lang="en-US">';
Out+='<head><title>Inner HTML<\/title><\/head>';
Out+='<body style="color:black;background-color:#ffffee;">';
Out+='Body HTML:<br \/><ul>';
NLine=String.fromCharCode(10);
ILines=IHtml.split(NLine);
for (ix1=0; ix1< ILines.length; ix1++) {
    Out+='<li>'+ILines[ix1]+'<\/li>';
}
Out+='<\/ul>';
Out+='&nbsp;&nbsp;[<a href="javascript:void(0);" onclick="window.close();" title="close">Close<\/a>]';
Out+='<\/body><\/html>\n';
PopUp1=window.open('','IHTML');
PopUp1.document.write(Out);
PopUp1.document.close();
javascript:IHtml=document.documentElement.innerHTML;
LThan=String.fromCharCode(60);
LT=新的RegExp(LThan,'g');
IHtml=IHtml.替换(LT,”);
IHtml=IHtml.replace(//g',);Out='';Out+='';
Out+='';
Out+=“内部HTML”;
Out+='';
Out+=“正文HTML:
    ”; NLine=String.fromCharCode(10); ILines=IHtml.split(NLine); 对于(ix1=0;ix1
非常感谢,这正是我想要的。我将创建临时PHP文件,并将用户发送到这些文件。Firefox的Web Dev工具栏应该能够做到这一点: