iFrame没有加载URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iFrame没有加载URL相关的知识,希望对你有一定的参考价值。

我正在使用以下简单的iFrame代码来加载Yahoo,但它无论如何都没有加载。在Chrome Inspector中,我首先看到URL状态为301,然后取消。知道为什么会这样吗?

<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中的网址是使用HTTP src="http://yahoo.com"

尝试使用HTTPS:src="https://yahoo.com"

以上是关于iFrame没有加载URL的主要内容,如果未能解决你的问题,请参考以下文章

当 URL 包含片段时,iframe 会导致父元素在 Google Chrome 上向上滚动

Html 代码作为 IFRAME 源而不是 URL

无法通过 AngularJS 控制器将 url 加载到 iframe

从 URL 滞后片段加载 VideoView

在 iframe 中显示 url o/p

检测 iframe 何时开始加载新 URL