2015-10-18 1 views
0

Imagin у вас есть URL (https://www.google.fr/)
У вас нет HTML-кода этой страницы после выполнения JavaScript на этой странице.
Imagin основного HTML до того яваскрипта выполнения заключается в следующем:Как получить содержимое URL-адреса после него Выполнение JavaScript

<html> 
    <head> 
     <title>Super test</title> 
    </head> 
    <body> 
     <script> 
      var i = document.createElement("div"); 
      i.className = "test"; 
      document.bodu.appendChild(i); 
     </script> 
    </body> 
</html> 

Что мне нужно это код (путь), чтобы получить этот результат:

<html> 
    <head> 
     <title>Super test</title> 
    </head> 
    <body> 
     <div class="test"></div> 
     <script> 
      var i = document.createElement("div"); 
      i.className = "test"; 
      document.body.appendChild(i); 
     </script> 
    </body> 
</html> 

I судимого эти опции:
- stackoverflow (Но не удалось его использовать)
- PHP PhantomJS (Но когда я пытаюсь использовать его, он дает мне код перед исполнением javascript).

+0

Что вы ищете Antoine на самом деле решение на основе Ajax, которая может потребоваться сопряжение с решением на стороне сервера. Теперь вы можете запросить внешний ресурс с помощью ajax, хотя я не уверен в «одинаковых правилах домена» в наши дни. Решением было бы реализовать решение на стороне сервера, используя что-то вроде cURL, которое может получить вам содержимое URL-адреса x, и вы сможете вернуть его с помощью javascript. – MarkSkayff

ответ

0

Вам нужно подождать, когда DOM будет готов. https://api.jquery.com/ready/

И использовать тело вместо Bodu :)

+0

Thx, но если я дам вам URL-адрес, внешний URL-адрес, например google.fr, как я могу использовать вашу готовую функцию? Я не могу положить его в iframe и ждать, пока он будет готов. Мы не можем получить iframe-содержимое внешнего URL-адреса: '( –

+0

Хорошо, тогда я не понимаю. :(Ваш код просто создает и добавляет новый элемент в конец вашего тела. И он работает хорошо. Вы хотите скопировать содержимое внешней страницы на свою страницу? –

0

Если вы хотите увидеть HTML документа после того, как Javascript выполняется, используйте document.documentElement.innerHTML.

Попробуйте это, я добавил setTimeout на вашей исходной странице, которая откроет окно с предупреждением и отобразит измененную страницу с помощью «test» div.

<html> 
 
    <head> 
 
     <title>Super test</title> 
 
    </head> 
 
    <body> 
 
     <script> 
 
      var i = document.createElement("div"); 
 
      i.className = "test"; 
 
      document.body.appendChild(i); 
 
     </script> 
 
\t \t <script> 
 
\t \t setTimeout(function() { 
 
\t \t alert(document.documentElement.innerHTML); 
 
\t \t },2000); 
 
\t \t 
 
\t \t </script 
 
    </body> 
 
</html>

+0

Спасибо за вашу помощь, но я думаю, что вы не понимаете, мне не нужен код MY-страницы, а внешней страницы внешнего сервер. Как и Google. –

Смежные вопросы