Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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
如何获取由JAVASCRIPT生成的所有DOM,包括_Javascript_Dom - Fatal编程技术网

如何获取由JAVASCRIPT生成的所有DOM,包括

如何获取由JAVASCRIPT生成的所有DOM,包括,javascript,dom,Javascript,Dom,作为标题,我如何获得所有DOM树,包括javascript生成的DOM树 例如: <html> ... <script type='text/javascript'> function add_new_element(){ var dv, newP; newP = document.createElement("p"); newP.id = 'new'; dv = document.getElementById(

作为标题,我如何获得所有DOM树,包括javascript生成的DOM树

例如:

<html>
...
  <script type='text/javascript'>
    function add_new_element(){
      var dv, newP;
      newP = document.createElement("p");
      newP.id = 'new';
      dv = document.getElementById('ex');
      dv.appendChild(newP);
    }
  </script>
  <body onload="add_new_element()">
    <div id="ex"></div>
  </body>
</html>
我想要得到所有的DOM,包括由js生成的“p”

我使用phantomjs执行js,然后获取DOM,但失败了

有人有好主意吗


谢谢。

您可以访问代码中新创建的p对象。变量newP保存了它。如果操纵该变量,dom更改将自动反映在dom中。如果您在访问它时仍面临问题,请告诉我

注意:由于您已将newP变量声明为var类型,因此它将保持该函数**add_new_element**的私有性。如果您希望它是全局变量IMHO,那么您应该这样做,以便您可以随时访问它,您应该将它声明为newP

 var dv;
 //remove the var type declaration
 newP = document.createElement("p");
 newP.id = 'new';

您希望何时/如何/从何处获取元素?为什么DOM应该关心它的部分是如何创建的?根据Fcicada的评论,这不是重点。我想从网络上抓取图像,但很多都是由js生成的,所以,我想让他们知道的问题绝对不是Fcicada想知道的。对不起,这不是重点。我想从网上抓取图像,但很多都是由js生成的,所以,我想得到它们。你们的方法不对。首先,你应该提出你想要解决的问题。其次,如果图像是通过js加载的,那么body.onload事件将不会有帮助。图像的工作方式与普通html标记略有不同。图像加载需要时间。所以你有两个选择。1:不要开始抓取onBody加载事件,你应该使用setTimeout方法等待一段时间,然后调用crawler函数;2:如果图像是通过js加载的,你可以使用net mon工具获取准确的URL并直接获取它们