2013-04-19 3 views
-2

Как заголовок, как я могу получить все дерево DOM, включая сгенерированные javascript.Как получить ВСЕ DOM, включая сгенерированные JAVASCRIPT

Например:

<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.

Я использовал phantomjs для выполнения js, а затем получил DOM, но не смог.

У кого-то есть хорошие идеи?

Спасибо.

+0

Когда/как/где вы хотите получить элементы? –

+0

Зачем DOM заботиться о том, как его части были созданы? –

+0

Согласно комментарию Fcicada «это не главное. Я хочу сканировать изображение из сети, но многие генерируются js, поэтому я хочу их получить». Вопрос абсолютно не в том, что Fcicada хочет знать. – Tushar

ответ

0

У вас есть доступ к вновь созданному объекту 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'; 
+0

e..извините, это не главное. Я хочу сканировать изображение из сети, но многие генерируются js, поэтому я хочу их получить – Fcicada

+0

Вы подходите неправильно. Для начала вы должны решить проблему, которую хотите решить. Во-вторых, если изображения загружаются через js, событие body.onload не поможет. Изображения работают немного иначе, чем обычные теги html. Изображения требуют времени для загрузки. Таким образом, у вас есть 2 варианта. 1: вместо того, чтобы запускать сканирование onBody, вы должны подождать некоторое время, используя метод setTimeout, а затем вызвать функцию искателя OR 2: если изображения загружены через js, вы можете получить точные URL-адреса, используя инструмент net mon и получить их непосредственно – Tushar