当使用JQuery.load加载页面时,IE7和8给出了混合内容警告

时间:2012-01-17 00:03:52

标签: jquery internet-explorer-8 https internet-explorer-7 load

我有一个网页,以两种不同的方式加载;用户可以单击其链接,它将在同一浏览器窗口中加载该页面;否则可以在JQuery Dialog中查看同一页面,只是该页面的内容区域显示在弹出窗口中。当这个页面加载到主浏览器窗口时,它可以在所有浏览器(所有版本)中正常工作,但是当我在弹出窗口中加载它时,它仅在IE7和IE8中提供混合内容警告。

我花了一整天时间寻找它的根本原因但没有成功。我已经尝试了下面给出的帖子中建议的所有修复:

  1. 所有链接都是相对的或明确地具有https:在网址中。
  2. 浏览器下载的任何资源都没有任何404消息。
  3. 我浏览了Fiddler treffic,所有请求都是https。
  4. src="javascript:代码中没有<script>“属性。
  5. 我没有删除任何带有background-image的div:直接在style属性中定义的url样式。
  6. 正如您所看到的,我已经尝试了所有在线提供的建议/修复但没有运气。我非常感谢这方面的帮助。

    谢谢, 函数naveed

3 个答案:

答案 0 :(得分:3)

我花了很长时间研究我自己的版本。最终帮我找到答案的是在IE8模式下使用IE10 - 这给出了一个实际的特定错误。我强烈建议如果你有类似的问题,Fiddler或HttpWatch向你保证你实际上没有加载任何HTTP。

对我而言,问题是使用一个脚本,该脚本将样式表链接附加到头部:

$("head").append('<link href="//example.com/stylesheets/icons" media="screen" rel="stylesheet" type="text/css" />');

IE8通常处理协议相对URL就好了,但显然不是这种情况。我必须提供一个明确的协议:

$("head").append('<link href="'+window.location.protocol+'//example.com/stylesheets/icons" media="screen" rel="stylesheet" type="text/css" />');

丑陋,但功能齐全。希望这能让人有些头疼!

答案 1 :(得分:1)

我终于能够解决这个问题,并在这里发布解决方案,以便在网上搜索根本原因的任何可怜的灵魂。在我的情况下,这是由于在3个不同的标签(例如)上使用无效的“背景”属性导致IE7和IE8仅在这些页面被加载到jquery对话框中时发出混合内容警告。如果直接在浏览器中加载了同一页面,则没有警告。所以我仍然无法理解为什么会这样。可能是一些专家可以阐明为什么它表现得那样。 感谢大家的回复。

答案 2 :(得分:0)

常见的罪魁祸首包括CSS引用的图片,iframe网址和脚本网址。

你说在Fiddler中没有看到HTTP请求;但也许那是因为它目前阻止了非安全资源。告诉您的浏览器获取所有非安全资源并在此之后观看Fiddler。