所有javascript加载后如何输出DOM?

时间:2012-05-25 00:11:37

标签: php javascript dom curl phantomjs

作为标题,我的问题是如何输出(假设在服务器计算机上保存为文本文件或使用ajax将结果传递给其他一些php函数)页面上的所有DOM内容?

我做了一些功课,我试过curl可以使用“curl http://google.ca> dom.txt”输出所有DOM内容 但是,这种方法不会保存Javascript生成的内容,换句话说,javascript代码将无法运行。 另一种方法是将一些javascript代码嵌入到页面中,让页面加载我们想要输出的网站,然后使用javascript代码在加载所有内容后保存所有DOM文件。

我不确定phantom.js是否可以做这样的工作,如果是的话,那该怎么办?

任何机构都可以详细解答如何实现这一目标?

我对任何解决方案持开放态度,此程序将在我的服务器上运行以提供服务。

提前谢谢。

3 个答案:

答案 0 :(得分:4)

为什么不:

jQuery(document).ready(function($) {
    $.post(
        '/your_filename.php',
        'html='+$("html").html(),
        function(response){
            alert(response);
        }
    );
});

答案 1 :(得分:1)

您可以使用document.documentElement.innerHTML获取HTML元素的内容(包括头部和正文)。如果您需要所有内容,可以将document.doctypedocument.documentElement.outerHTML连接起来。

请注意,outerHTML并非完全跨浏览器(适用于IE和Chrome,但不适用于Firefox) - 有关模拟Firefox outerHTML的方法,请参阅此问题:{{3 }}

答案 2 :(得分:0)

Javascript是一种客户端语言,因此在服务器上运行它需要专门的技术。 PHP实际上有能力使用DOM的东西,因为它可以在传输到客户端之前构建和修改dom元素,阅读更多有关here.

的信息。

我不确定你要通过这样做来完成什么,但听起来你正在努力:你正在向客户端发送代码,以便客户端可以转身并将代码发送回服务器以便服务器可以将其保存为文件?虽然如果你需要这样做,请遵循Brilliand和iambriansreed的建议,用Javascript / jQuery挖掘dom元素。