略过http似乎可以使它使用HTTP连接,但我没有启用HTTPS的网站来测试是否对HTTPS也适用。
使用//www.example.com/test.js会根据主文档的协议自动选择协议吗?
使用//www.example.com/test.js会根据主文档的协议自动选择协议吗?
这篇文章介绍了一个与此问题密切相关的技术。以下是其中的内容:
2010年10月27日
作者:Paul Irish
有一个小技巧可以让你省去一些麻烦:
<img src="//domain.com/img/logo.png">
<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,这被称为“网络路径引用”。哦,如果你想真正正确,当谈论URL时,你应该使用术语“scheme”而不是“protocol”。
这个技巧在CSS中也可以很好地工作:
.omgomg { background: url(//websbestgifs.net/kittyonadolphin.gif); }
假设您所指向的网站在HTTP和HTTPS上都有此资源可用。
注意:当在<link>
或@import
中用于样式表时,IE7和IE8会下载文件两次。然而,所有其他用途都没有问题。
感谢miketaylr、ralphholzmann、annevk的聪明才智,以及ajaxian,在那里我可能学到了4年前的知识?也许?
2011.01.23:但是..在Google Analytics代码片段中使用这个怎么办? 当然可以,那不是很好吗..所以我与Google Analytics JavaScript主要开发者(天啊,我喜欢在谷歌工作)合作,看看我们能否这样做..结果我们不能。在IE6中存在一个边缘情况错误,导致对非“ssl”子域请求时弹出对话框...在某些安全设置下(不确定是否为默认设置)。截图在这里。因此,如果您不关心IE6,则可以将GA片段减小40字节。否则,您将需要使用三元运算符。:)