以下是我的代码:
<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仍为空。谁能帮帮我吗?
答案 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>