为什么跟踪脚本在加载外部JavaScript时检查协议?

为什么跟踪脚本在加载外部JavaScript时检查协议?,javascript,html,url,Javascript,Html,Url,所有的网站跟踪器,比如Google Analytics,都有一个小脚本,用async和Delferred为新的脚本标签做广告,加载一个跟踪脚本。其中许多使用以下javascript: var u=(("https:" == document.location.protocol) ? "https" : "http") + "://google-analytics.com/tracking.js"; 为什么他们不使用//google analytics.com/tracking.js,而不是尝试

所有的网站跟踪器,比如Google Analytics,都有一个小脚本,用async和Delferred为新的脚本标签做广告,加载一个跟踪脚本。其中许多使用以下javascript:

var u=(("https:" == document.location.protocol) ? "https" : "http") + "://google-analytics.com/tracking.js";
为什么他们不使用
//google analytics.com/tracking.js
,而不是尝试确定页面是https还是http?目前是否有不支持无协议url的浏览器?

来自:

协议相关URL导致IE6中出现错误对话框

这在IE6中不起作用的原因是服务器正在使用SNI 推断要返回的证书。XP(因此IE6)不支持 HTTPS堆栈中的SNI

如果IE6不是目标(此时它很可能不是目标),那么相对协议应该可以工作