我用下面简单的iFrame代码加载雅虎,但它没有加载反正。 在Chrome检查我看到的第一个301,然后取消URL状态。 任何想法为什么会发生?
<iframe name="iframe1" src="http://yahoo.com"></iframe>
我用下面简单的iFrame代码加载雅虎,但它没有加载反正。 在Chrome检查我看到的第一个301,然后取消URL状态。 任何想法为什么会发生?
<iframe name="iframe1" src="http://yahoo.com"></iframe>
你可能会得到读取像这样在日志中的错误信息:
"Refused to display document because display forbidden by X-Frame-Options."
要回答你的问题:
雅虎这样做是为了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
如果你是在用简单的JavaScript一个iframe它也很容易让网站不加载。 例如,Twitter的做到这一点
<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>
我没有在这里看到一个控制台的错误,所以我想这是这里的情况。
雅虎 JavaScript是模糊的,但你可以看到他们在这个片段中绝对去除一些东西。 (从雅虎网站采取的代号)
if(self!==self.top){b=function(){if(g.readyState=="complete"){f.remove(g,e,b);
实际上雅虎,谷歌和这样的网站不允许的iframe他们的网站。 他们块iframe来展示自己的网站
如果托管该网页的网站强制使用安全的HTTPS
连接,一些浏览器(Chrome的肯定)会要求所有的网络资源使用HTTPS
为好。
在当前的IFRAME URL是使用HTTP src="http://yahoo.com"
尝试使用的HTTPS: src="https://yahoo.com"