刚我在看QQ空间V8的代码,看到一个奇怪的地方。就是有一段js需要判断浏览器是否支持vbs。那为什么需要判断这个?js不能代替vbs。
var s=location.host.split(".");
if(s.length>1){
document.domain=s.slice(s.length-2).join(".");
}else{
document.close();
}
var b=false,
GBEncoder,
setting = parent.QZFL.XHR.instance[frameElement.id.replace("_xsend_frm_","")];
if (setting && setting.charset.toUpperCase() == "GB2312") {
try {
if (window.execScript) {
execScript("b=(Asc('啊')=-20319)", "vbscript");
}
} catch (ignore) {
b = false;
}
if (!b) {
document.write('<script type="text/javascript" src="' + setting.GBEncoderPath + 'gbencoder.js"><\/script>');
} else {
document.write('<script language="vbscript" src="' + setting.GBEncoderPath + 'gbencoder.vbs"><\/script>');
GBEncoder = function(s){
return URLEncoding(s);
};
}
}else{
GBEncoder=function(s){return s;};
}
猜不透。
估计是一些历史的原因,可能有些老的组件仍然依赖vbs?
在很久很久以前。。。IE(好吧也只有 IE 支持 VBS?)的 AJAX 是固定死 UTF8 的,国内却一大堆 GB2312 的服务器,然后在浏览器里又只有 VBS 能转换编码。。。于是就这样了。