为什么没有为此facebook脚本标记指定协议

Ser*_*er1 4 javascript facebook

有了这个,我可以生成一个类似的按钮:D

<script>(function(d, s, id) {

  var js, fjs = d.getElementsByTagName(s)[0];

  if (d.getElementById(id)) return;

  js = d.createElement(s); js.id = id;

  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";

  fjs.parentNode.insertBefore(js, fjs);

}(document, 'script', 'facebook-jssdk'));</script>
Run Code Online (Sandbox Code Playgroud)

但为什么不呢

js.src =" some protocol: //connect.facebook.net/en_US/all.js#xfbml=1";

为什么没有具体的协议?

fro*_*dqy 8

这是一个有用的技巧,允许您使用适用于HTTP和HTTPS页面的单个引用.当省略URL的协议时,浏览器将使用基础文档的协议.

在通过常规未加密的HTTP加载的页面上,使用该URL的脚本引用将通过HTTP加载并正常缓存.同样,在通过HTTPS加载的安全页面上.

因此,使用无协议URL允许单个脚本引用使其自身适应最佳:HTTP及其在HTTP页面上的完全缓存支持,以及在安全页面上的HTTPS,以便您的用户不会遇到混合内容警告.

资料来源:http://encosia.com/cripple-the-google-cdns-caching-with-a-single-character/