我有一个index.html
文件在桌面上,我想使用以下选项获取 jQuery 库:
- 我不想将index.html文件上传到服务器
- 我不想为 get jquery 脚本添加协议(protocol)。
- 脚本必须从 jQuery CDN(或 Google)服务器检索,而不是从本地文件检索。
我尝试了这样的方法:<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js></script>
但看起来它不适用于本地文件。
出了什么问题?
最佳答案
它无法正常工作的原因是因为以 //
开头的 URL 将使用“当前”协议(protocol)。在互联网上,您可以使用 HTTP
或 HTTPS
协议(protocol)访问资源。但是,当显示本地硬盘驱动器中的文件时,使用的协议(protocol)是 FILE
因此,而不是转换为所需的 http://ajax.googleapis.com/ajax/libs/jquery/1.4 .2/jquery.js
转换为 file://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js
因此,您可以选择使用如下所示的 JavaScript 加载脚本,或者对协议(protocol)进行硬编码。
<script>
var p = 'http';
if (document.location.protocol == "https:"){
p+='s';
}
var z = document.createElement("script");
z.type = "text/javascript";
z.src = p + "://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(z, s);
</script>
这将查看当前协议(protocol),以便使用正确的协议(protocol)。
PS:我使用了 SO 源代码中的 adzerk 代码并对其进行了修改...我知道 Google Analytics 使用相同类型的代码段。
关于jquery - 为什么相关协议(protocol)在本地文件中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205838/