2012-04-22 3 views
13

Я использую следующий простой код iFrame для загрузки Yahoo, но он все равно не загружается. в Chrome Inspector Сначала я вижу статус URL как 301, а затем отменю. Любая идея, почему это происходит?iFrame не загружается URL

<iframe name="iframe1" src="http://yahoo.com"></iframe> 
+0

Вы можете рассмотреть вопрос о маркировке ответа как правильные. – iambriansreed

ответ

23

Вы, вероятно, получите сообщение об ошибке в журнале, который читает что-то вроде этого:

"Refused to display document because display forbidden by X-Frame-Options."

Чтобы ответить на ваш вопрос:

Yahoo делает это для avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.

Для получения дополнительной информации читайте это: https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

+0

Я использую Chrome – Volatil3

+2

Я тоже. Итак, это именно сообщение об ошибке, которое вы увидите. – iambriansreed

+0

@ Volatil3 Обновлено. – iambriansreed

4

Его также очень легко спросить, чтобы сайт не загружался, если вы находитесь в iframe с простым javascript. Например, твиттер делает этот

<script type="text/javascript"> 
//<![CDATA[ 
    if (window.top !== window.self) { 
     document.write = ""; 
     window.top.location = window.self.location; 
     setTimeout(function() { 
      document.body.innerHTML = ''; 
     }, 1); 
     window.self.onload = function (evt) { 
      document.body.innerHTML = ''; 
     }; 
    } 
//]]> 
</script> 

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

Yahoo! JavaScript запутан, но вы можете видеть, что они явно удаляют что-то в этом фрагменте. (Код взят с сайта Yahoo)

if(self!==self.top){b=function(){if(g.readyState=="complete"){f.remove(g,e,b); 
+0

@downvoter: не могли бы вы объяснить почему? – naveen

+0

Я думаю, что ваш ответ на самом деле не отвечает на заданный вопрос. –

+0

Косвенно он ответил, при условии причины. Перед его ответом я думал, что у меня есть проблема. Я также узнал, как сохранить свою сторону для любого внедрения. Спасибо @naveen – Volatil3

3

на самом деле Yahoo, Google и такой сайт не позволяет плавающие фреймы на их сайт. Они блокируют iframe, чтобы показать свой сайт

2

Если сайт, на котором размещена веб-страница, заставляет использовать безопасное соединение HTTPS, некоторые браузеры (хром наверняка) потребуют, чтобы все сетевые ресурсы использовали HTTPS.

URL-адрес в текущем фрейме используется HTTP src="http://yahoo.com"

Попробуйте использовать HTTPS: src="https://yahoo.com"

+0

Это единственный правильный ответ! В моем случае. Благодаря! – domih

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