在Javascript中使用//www.example.com是否自动选择了http/https协议
Does using //www.example.com in Javascript chose http/https protocol automatically
省略http似乎使它使用http连接,但我没有一个启用HTTPS的网站来测试它是否也适用于HTTPS。
是否使用//www.example.com/test.js自动选择基于主文档的协议?
http://paulirish.com/2010/the-protocol-relative-url/
有一篇关于这个问题的好文章。包括:
协议-相对URL
2010年10月27日作者:Paul Irish
有一个小技巧可以帮你省去一些麻烦:
<img src="//domain.com/img/logo.png">
如果浏览器通过HTTPS查看当前页面,那么它将使用HTTPS协议请求该资产,否则它通常会使用HTTP请求它。这可以防止出现可怕的"此页面同时包含安全和非安全项目"。错误消息,保持所有的资产请求在相同的协议。
*当然,如果你在本地查看文件,它会尝试用file://protocol请求文件。
我们在HTML5 Boilerplate中使用了这个技巧,以巧妙地请求Google CDN上的jQuery:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
技术上,这被称为"网络路径引用"。根据RFC 3986。哦,如果你想真正做到正确,你会使用"计划"这个词;而不是"协议"
这个技巧在CSS中也很有效:
.omgomg { background: url(//websbestgifs.net/kittyonadolphin.gif); }
…假设您指向的站点在HTTP和HTTPS上都有此资源。
警告:当在<link>
或@import
上使用样式表时,IE7和IE8将下载该文件两次。然而,所有其他用途都很好。
感谢miketaylr, ralphholzmann, annevk在这方面的智慧,以及ajaxian,我想我是4年前在哪里学的?也许?
2011.01.23:但是……在Google分析片段上使用这个怎么样?当然,那不是很好吗……所以我与Google Analytics的javascript首席开发者合作(上帝,我喜欢在Google工作),看看我们是否能做到这一点。事实证明我们不能。在IE6中有一个边缘错误,当从非"ssl"子域请求时,在某些安全设置下(不确定是否为默认设置)会导致对话框爆炸。截图。所以,如果你不关心IE6,可以随意从你的GA片段中去掉40字节。否则就需要三元运算符了。:)
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 按照选项卡索引的顺序循环一个jQuery选择
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 获取选择框的状态
- d3基于用户选择动态更新节点
- 提交后保留下拉选择的值
- JQuery对动态创建的对象进行选择
- 无法在Ionic select中预先选择最后一个选项
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery自动完成阻止选择后聚焦
- 使用此选项选择父类内部的类
- jQuery最近父级的数据属性选择器
- 遍历类元素数组,并在jquery中选择同级元素
- 为视频/音频应用程序(WebRTC API)选择信号协议
- 在Javascript中使用//www.example.com是否自动选择了http/https协议