chrome 的 try catch 的问题

金色海洋 金色海洋 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

两个页面,一个父页,一个子页,父页里有一个iframe指向子页。

如果父页和子页在同一个域名里,那么可以访问 top.aa ,如果不在同一个域里面,子页虽然可以访问 top ,但是不能给 top.aa 设置值。

我想做一个“缓存”,把一些常用信息缓存在 top里。因为父页被更新的次数要远小于子页的更新次数。

但是问题是,并不一定在一个域名里,不在一个域名里就不做缓存了。

我想做一下判断,typeof top.__cache 在跨域的时候会报错,于是想用try,但是IE里面好用,chrome里面不好用。

折腾半天只好采用折中的办法来判断,虽然可以判断出来,但是还是会报错。

请问一下有没有更好的办法(注意,在chrome浏览器里面要好用)。我的代码如下:



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;
}
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
金色海洋
.NET社区 62,272 成员 668,968 内容