iframe内容无法在Firefox中显示

时间:2013-08-22 06:54:47

标签: html firefox iframe

以下是我的代码:

<div style="border: solid 1px #000000; margin: 5px;">
  <iframe src="http://www.w3schools.com" width="100%" height="300px" scrolling="yes"><p>Your browser does not support iframe.</p></iframe>     
</div>   

iframe的内容在chrome中运行良好,但在firefox中运行不正常。我已禁用加载项,但我的iframe仍为空。谁能帮帮我吗?

5 个答案:

答案 0 :(得分:13)

如果您尝试在SSL加密的网站(https://)上添加此iframe,则自Firefox 23以来它将不再起作用,因为Mozilla已决定阻止加密网站上的所有未加密内容(例如http - https网站上的框架)。 您可以在地址栏中键入about:config并将security.mixed_content.block_active_content设置为false,从而在您自己的Firefox安装中更改此行为。 但这对您网站上所有其他FF23访问者没有帮助。

答案 1 :(得分:2)

我不知道它是否相关,但是当我尝试通过c#请求w3schools时它响应503禁止错误。所以他们可能会使用某些东西来防止出现在iframe上等.Facebook有类似的限制,除非你登录,否则你无法显示他们的likebox iframe。

答案 2 :(得分:1)

为什么还没有人提到过CORS?

FROM mdn

  

跨源资源共享(CORS)是一种使用的机制   额外的HTTP标头,以允许用户代理获得访问权限   从不同来源(域)的服务器中选择的资源   目前正在使用的网站。用户代理生成跨源HTTP   请求来自不同域,协议,   或端口,而不是当前文件来源的端口。

     

跨源请求的示例:提供的HTML页面   http://domain-a.com发出src请求   http://domain-b.com/image.jpg。今天网络上的许多页面加载   来自单独的CSS样式表,图像和脚本等资源   域名,例如内容分发网络(CDN)。

     

出于安全原因,浏览器会限制跨源HTTP请求   从脚本中启动。例如,XMLHttpRequest和   Fetch API遵循同源策略。这意味着一个网络   使用这些API的应用程序只能从中请求HTTP资源   除非CORS头是,否则应用程序加载的域相同   使用

这意味着您尝试从iframe输入的网站设置为拒绝来自您网站或其他网站(如果不是全部)的请求。

答案 3 :(得分:0)

我有同样的问题。对我来说,原因是网址末尾的斜线。

不起作用:

<iframe src="http://example.com/some/sub/folder/"></iframe>

使用:

<iframe src="http://example.com/some/sub/folder"></iframe>

答案 4 :(得分:0)

您需要在本地主机上拥有iframe的源文件。

Firefox和Chrome不会显示此iframe:

<iframe src="https://www.yourdomain.com/form.html"></iframe>

作品:

<iframe src="/form.html"></iframe>