ie6.0 iframe 标签不加载内容的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ie6.0 iframe 标签不加载内容的问题相关的知识,希望对你有一定的参考价值。

需要加载的页面: http://www.aqbtv.cn/luntan.htm

里面是多个script 引用的内容 我也在晚上看了,说src不能放在第一个属性,放在最后一个后发现有时候能加载一部分,这个情况在其他浏览器(360 搜狗)就不存在 求救!

参考技术A 你需要加载的页面中的<script src="../a_js/common.js"></script>改成绝对地址试试追问

没用,试过了

Chrome 和 IE 中的混合内容

【中文标题】Chrome 和 IE 中的混合内容【英文标题】:Mixed content in Chrome and IE 【发布时间】:2014-11-26 12:14:50 【问题描述】:

在我启用 HTTPS 的网站中,我添加了一个 iframe,它应该显示来自我的其他网站的内容,但它在 https 下不起作用。

<iframe  src="//myothersite.com"></iframe>

在 Firefox 最新版本中一切正常。

在 Chrome 中,iframe 未加载,在控制台中我看到这两个错误

Mixed Content: The page at 'https://mysite' was loaded over HTTPS, but requested an insecure resource 'http://myothersite.com'. 
This request has been blocked; the content must be served over HTTPS.
Failed to load resource: net::ERR_CACHE_MISS

在 IE 内容加载不正确并且我看到一条警告消息;如果我点击允许不安全内容,它会正确加载。

问题是:我如何才能像在 Firefox 中那样使用 IE 和 Chrome(加载混合内容而没有任何警报)?

注意:我没有更改任何浏览器设置。

【问题讨论】:

【参考方案1】:

实际上 Firefox 也开始这样做了:How to fix a website with blocked mixed content

这是有道理的。如果用户使用 HTTPS 访问站点时期望获得安全体验,并且他可能不知道在不安全的连接下加载的应用程序的某些部分。这就是浏览器阻止这种不一致的原因。

您需要在 myothersite.com 上提供 HTTPS。

【讨论】:

好的,如果 myothersite.com 不是我的网站,这很有意义。但是 myothersite.com 是我的网站,我可以保证安全。我认为浏览器应该提供这样的功能 您不能保证任何事情。如果连接不安全,中间的任何人都可以窃听连接。 IFRAME 就像另一个浏览器选项卡,它们使用自己的连接,在这种情况下是不安全的。 我同意,但为什么 firefox 允许在没有任何警报的情况下使用不安全? Firefox 的错误。在我提供的链接中,它说它正在阻止来自 v23 的混合内容。【参考方案2】:

显然最好不要混合内容以防止 MITM 攻击,但对于那些无法控制 url 的人来说,这应该可以解决问题:

src="http://linkToUrl.com" 更改为

src="//linkToUrl.com/script.js"

【讨论】:

这并不能解决script.js发送子http请求的问题。添加此&lt;meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"&gt; 结合使用 src="//linkToUrl.com/script.js" 并添加建议的元标记 @towry 在这里为我解决了这个问题。我相信这是最好的答案。 我必须在哪里配置这个东西? 拯救我的一天@JisuKim82【参考方案3】:

enter image description here

当我设置网址时: &lt;a href="http://127.0.0.1:8080/download/1.txt"&gt;&lt;/a&gt; 来自 https 请求,它报告错误: 混合内容:'https://127.0.0.1/index.html' 的页面通过 HTTPS 加载,但请求了不安全的资源 'http://127.0.0.1:8080/download/1.txt'

This request has been blocked; the content must be served over HTTPS.
Failed to load resource: net::ERR_CACHE_MISS

当我将target="_blank" 添加到网址:&lt;a target="_blank" href="http://127.0.0.1:8080/download/1.txt"&gt; 时,它起作用了! , 有用! 众所周知,target="_blank" 表示在新窗口或标签页或新请求中打开链接的文档!

【讨论】:

这是在 iframe 中!【参考方案4】:

很抱歉,这不像其他答案那样技术性强,但是我在像这样链接 jsquery 时遇到了同样的问题,对我来说,只需将 http:// 更改为 https:// 即可解决。它可能不起作用,但它对我有用,它可能对你有用。

【讨论】:

【参考方案5】:

问题是混合内容,浏览器不允许我们这样做。

您需要更改网址:

http://example.com

//example.com

【讨论】:

这仅在 example.com 设置为接受 HTTPS 请求时有效。这与将其从 http://example.com 更改为 https://example.com 几乎相同。如果一个失败,他们都会失败。【参考方案6】:

我在使用 CloudFlare 时遇到了其他问题,它不会加载,因为文件已缓存为 http。只需转到 CloudFlare 并在缓存选项卡中“清除所有内容”,或者打开“开发模式”。

【讨论】:

【参考方案7】:

将此代码放入您的 html 文件将解决 Chrome 的这两个错误:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

如果任何解决方案不起作用,请尝试此解决方案。

【讨论】:

以上是关于ie6.0 iframe 标签不加载内容的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的扩展程序的新标签页中将其他扩展程序的新标签页加载为 iFrame

更好的替代 iframe 来显示标签内容?

加载后如何从 iframe 中选择内容

Iframe内部页面高度赋值于其父页面的Iframe标签

js获取iframe的src页面的body内容

iframe 根据加载内容调整高度