首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么相关协议在本地文件中不能工作?

为什么相关协议在本地文件中不能工作?
EN

Stack Overflow用户
提问于 2015-08-25 13:49:58
回答 1查看 111关注 0票数 2

我在桌面上有一个index.html文件,我想获得具有以下选项的jQuery库:

  • 我不想把index.html文件上传到服务器
  • 我不想为get脚本添加协议。
  • 脚本必须从jQuery CDN (或Google)服务器中检索,而不是从本地文件中检索。 我试过这样做:<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js></script>

但看起来对本地文件不起作用。

哪里出了问题?

EN

回答 1

Stack Overflow用户

发布于 2015-08-25 14:42:27

它不能正常工作的原因是,使用//启动URL将使用“当前”协议。在internet上,您可以使用HTTPHTTPS协议访问资源。但是当显示来自本地硬盘的文件时,所使用的协议是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加载脚本,如下面所示,或者硬编码协议。

代码语言:javascript
运行
复制
<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>

这将查看当前的协议,因此它使用正确的协议。

PS:我使用了SO源代码中的adzerk代码,并对其进行了修改.我知道Google分析使用的是同样的片段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32205838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档