如何获取由JAVASCRIPT生成的所有DOM,包括
作为标题,我如何获得所有DOM树,包括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(
<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并直接获取它们