1,终于找到bing切不会国内版的原因。在e005d768.js这文件的r(n, 函数,会分离出cookie的ENSEARCH、BENVER字段,然后判断当前是不是国际版。
这个字段是主html的SwitchTabV2函数里面每次切换页面时候写到cookie的。
var SwitchTabV2; (function() {
function e() {
return typeof Log != "undefined" && Log !== null && typeof Log.Log != "undefined"
}
function o() {
var r = sj_cook.get(n, t);
r && r == "1" && (i = "0", sj_cook.set(n, t, i, !0, "/"), e() && Log.Log("DHTMLClick", "EnglishSearch_SwitchTab", "SwitchToChinese", !1), _w.location.search = EnglishSearchShared.RemoveParameter(f))
}
function s() {
var r = sj_cook.get(n, t);
r && r == "1" || (i = "1", sj_cook.set(n, t, i, !0, "/"), e() && Log.Log("DHTMLClick", "EnglishSearch_SwitchTab", "SwitchToEnglish", !1), _w.location.href = EnglishSearchShared.SetParameter(f, "1"))
}
function h() { (u = _ge("est_en"), r = _ge("est_cn"), u && r) && (EnglishSearchShared.SetCookieByUrlParameter(f, n, t, !0), sj_be(u, "click",
function() { // !!!!
s()
}), sj_be(r, "click",
function() {
o()
}))
}
var r, u, n = "ENSEARCH",
t = "BENVER",
i, f = "ensearch";
h()
})(SwitchTabV2 || (SwitchTabV2 = {}));
那么问题来了,miniblink使用的webkit的cookie解析代码,有两个问题:
1,对于设置进来的domain=bing.com,因为没加点号".",所以下次获取cookie的时候获取不到这个ENSEARCH=BENVER=1
2,对于ENSEARCH=BENVER=1这种写法识别有问题,识别成ENSEARCH=BENVER了。