try { if (typeof top == "undefined") canUseCache = false; else { top.t_m_p = "tmp"; if (top.t_m_p != "tmp") /*chrome里,抓不住这个异常,只好这么判断了*/ canUseCache = false; else { if (typeof top.__cache == "undefined") top.__cache = {}; canUseCache = true; } } } catch (e) { /* 出异常,不允许访问,不缓存了。*/ canUseCache = false; }
如果不能访问top里的对象的话,
ie里面可以执行到 catch里面,但是 chrome却不能,而且还报错。所以只好这么判断了,居然还能执行。
ps:结贴的按钮太隐蔽了,找了半天才找到。
跨域的时候,iframe的src不在同一个域里面
console.log(top); 就会发现真相,window对象有top属性
这里面也不存在出异常的情况啊