2011-03-01 63 views
4

在我的页面上,JavaScript在页面加载时添加了很多类(取决于页面)。 我该如何等待直到JavaScript已经添加了这些类,然后使用Javascript或PHP从不同的文件获取HTML?如何使用PHP检索页面源代码(在javascript运行之后)?

+0

Firefox的网页开发工具应该能够做到这一点: http://stackoverflow.com/questions/5301554/is-page-source-before-or-after-javascript-has-been-rendered – Evans 2011-08-01 15:57:07

回答

1

它看起来像你需要的是Firebug。如果您使用Google Chrome,则还可以使用Google Chrome Developer Tools

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

1

在您的页面上,您不能通过JavaScript以外的其他资源接收呈现的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'); 
0

你不能,很容易。

JavaScript修改内存中的DOM。这是与您最初发送给浏览器的“源”完全独立的实体。

您可以做的最接近的事情是通过JS构建DOM的XML表示并通过AJAX将其发送回服务器。为什么你想要/需要这样做超出了我。

2

页面加载完成后,使用Ajax将呈现的源发回PHP脚本。

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

(这个例子假设你正在使用jQuery)

+0

感谢这么多,到底我在找什么。我将创建临时的'PHP文件并将用户发送到这些文件。 – 2011-03-01 17:18:15

0

打开书签/收藏夹,并创建一个新的这个,然后点击你的页面加载后:

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(); 
相关问题