iFrame не загружает URL-адрес
Я использую следующий простой код iFrame для загрузки Yahoo, но он не загружается в любом случае. в Chrome Inspector Сначала я вижу статус URL как 301, а затем отменю. Любая идея, почему это происходит?
<iframe name="iframe1" src="http://yahoo.com"></iframe>
Ответы
Ответ 1
Вероятно, вы получите сообщение об ошибке в журнале, который читает что-то вроде этого:
"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
Ответ 2
Его также очень легко спросить сайт не загружать, если вы находитесь в 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);
Ответ 3
на самом деле yahoo, google и такой сайт не разрешают iframes на их сайте. Они блокируют iframe, чтобы показать свой веб-сайт
Ответ 4
Если сайт, на котором размещена веб-страница, заставляет использовать безопасное HTTPS
соединение, некоторые браузеры (хром наверняка) потребуют, чтобы все сетевые ресурсы также использовали HTTPS
.
URL в вашем текущем iframe использует HTTP src="http://yahoo.com"
Попробуйте использовать HTTPS: src="https://yahoo.com"