如果从 CDN 加载 jQuery ...
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/...
...如果网站是 HTTPS,则它将不被接受(阻止加载混合事件内容“http://ajax.googleapis.com/ajax/...
)。
解决方案似乎是:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/...
事实上,如果网站是 HTTP 或 HTTPS,它就可以工作。 但是当在本地处理文件时(即浏览硬盘上的文件),则 jQuery 不会使用此解决方案加载。
<小时/>这对我来说很重要,那些会下载 my GitHub project 的人将能够在本地进行测试。
如何将 jQuery 正确包含在 CDN 中,并能够在本地浏览 HTML 文件?
最佳答案
一般来说,使用 file://
URL 测试网页是一个坏主意,我不会费心去支持它。相反,使用本地网络服务器进行测试更有意义。
但如果您打算支持它,则需要检查 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>
如果不是 file:
,则使用页面协议(protocol)(http:
、https:
等),并使用 http:
如果是file:
。
关于javascript - 包括来自 CDN 和本地浏览的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457486/