如果从CDN加载jQuery ...
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/...
...如果网站是HTTPS(Blocked loading mixed active content "http://ajax.googleapis.com/ajax/...
),则不将被接受。
解决方案似乎是:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/...
如果网站是HTTP或HTTPS,它将起作用。 但是当在本地处理文件(即浏览我硬盘上的文件)时,jQuery没有加载此解决方案。
这对我很重要,下载my GitHub project的人将能够在本地进行测试。
如何使用CDN正确包含jQuery,并能够在本地浏览HTML文件?
答案 0 :(得分:2)
通常,使用file://
网址测试网页是一个坏主意,我不愿意支持它。相反,使用本地网络服务器进行测试更有意义。
但如果您打算支持它,则需要对location.protocol
进行检查:
<script>
(function() {
var protocol = location.protocol === "file:" ? "http:" : location.protocol;
document.write('<script src="' + protocol + '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"><\/script>');
})();
</script>
或者如果你正在做一个XHTML页面(或者只是不喜欢document.write
):
<script>
(function() {
var protocol = location.protocol === "file:" ? "http:" : location.protocol;
var script = document.createElement('script');
script.src = protocol + '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js';
document.getElementsByTagName("script")[0].parentNode.appendChild(script);
})();
</script>
如果它不是http:
,则使用页面的协议(https:
,file:
,等等),如果是http:
,则使用file:
。< / p>
答案 1 :(得分:1)
我一直尝试使用HTTPS:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/...
似乎有效:
从本地浏览HTML页面(file://
)
来自HTML页面的http浏览
来自https浏览HTML页面
答案 2 :(得分:-1)
从HTML5 Boilerplate,在您的CDN脚本后添加:
<script>window.jQuery || document.write('<script src="/path/to/local/jquery.js"><\/script>')</script>