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了。