2016-06-30 3 views
0

Мне нравится загружать html-код с помощью JavaScript. Этот HTML-код является внешней веб-страницей, которая будет отображаться в iframe. Возможно ли получить HTML-код, как он отображается в этом iframe.Загрузить веб-страницу extern с JavaScript

Так вот моя попытка:

<body> 
    <iframe id="iframe_htmlcode1" name="iframe_htmlcode" src="http://www.w3schools.com"></iframe> 
<textarea id="TextArea1" name="S1"></textarea> 

    <script> 
     function getAndSetContent() { 

      var x = document.getElementById("iframe_htmlcode1"); 
      var y = (x.contentWindow || x.contentDocument); 

      document.getElementById("TextArea1").value = y.documentElement.innerHTML; 


     } 
</script> 
<input id="Button1" type="button" value="button" onclick="getAndSetContent()" /> 

Но y.documentElement.innerHTML ничего не возвращает. Я попробовал это также с локальным html-документом, который будет использоваться в iframe, который отлично работает.

Любые предложения?

БЛАГОДАРЯ

+0

Пока я знаю, что это не возможно. Из-за меры безопасности вы получите исключение из перекрестного домена. Вы должны отправить свой запрос на php, php получит этот html и вернет его вам, что будет работать. –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript – Teemu

ответ

0

Я предполагаю, что ваш код работает с локальным файлом, так как протоколы сопоставления, во всяком случае отладки говорит, что это все (вам потребуется некоторый базовый сервер, а затем повторите попытку).

Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "http://www.w3schools.com". The frame requesting access has a protocol of "file", the frame being accessed has a protocol of "http". Protocols must match. 

После того, как вы получите свой код на сервере, вам может понадобиться использовать что-то вроде ниже, чтобы обойти CORS вопросы

https://github.com/padolsey-archive/jquery.fn/tree/master/cross-domain-ajax

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