我的Greasemonkey脚本破坏了IE9 HTTPS安全性?

我在IE9中有一个导入jQuery的Greasemonkey-for-IE脚本。 但是在安全页面上它不起作用。

我越来越:

SEC7111: HTTPS security is compromised by http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js 

失败的代码是:

 var script = document.createElement("script"); script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"); 

我怎样才能做到这一点? 该脚本不会导致Firefox出现问题。

大概:改为使用https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js (或者不信任第三方CDN(既要值得信赖又不妥协),以保护您的安全页面)

您可以使用类似于方案的URL来消除更简单代码的问题,如下所示:

 var script = document.createElement("script"); script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"); 

这将在http://页面上使用http:// ,在https://页面上使用https:// …这是解决问题的一种更简单的方法。

错误消息是IE关于混合内容(安全页面上的HTTP和HTTPS资源)的新警告方式。 这是一篇相关的MSDN博客文章。

运用

 https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js 

似乎也可以工作,虽然我在Libraries API概述中看不到它的正式引用。

问题是,当您处于安全模式(即HTTPS)时,页面加载的所有文件也必须是HTTPS。 JQuery包括你在这里制作的是HTTP。

您需要检测页面是否处于HTTP或HTTPS模式(使用window.location.protocol() ),并调整JQuery包含的URL以适应。 (所有它需要的是’http’之后的附加’s’)

您正在使用https连接,并且您想要访问http连接。