跨框架数据共享接口
很多项目存在父子框架,实现跨框架共享数据有一种简单的办法,就是用js创建数据共享接口。 框架应用中有一个==固定不变的窗口叫window.top==,如果我们把数据缓存到这个页面,其下所有框架都可以获取到,无论子页面如何变幻。不需要采用Cookie,也不需要采用什么HTML5本地数据库策略,你只需要每个页面引用一个js文件,内容如下:
var Datashare = {
/**
* 跨框架数据共享接口
* @param {String} 存储的数据名
* @param {Any} 将要存储的任意数据(无此项则返回被查询的数据)
*/
data: function (name, value) {
var top = window.top,
cache = top['_CACHE'] || {};
top['_CACHE'] = cache;
return value !== undefined ? cache[name] = value : cache[name];
},
/**
* 数据共享删除接口
* @param {String} 删除的数据名
*/
removeData: function (name) {
var cache = window.top['_CACHE'];
if (cache && cache[name]) delete cache[name];
}
};
这个方法可以==共享任意类型的数据==供各个框架页面读取,它与页面名称、层级没有任何关系,就算哪天框架页面层级被修改,你也完全不用担心,它可正常工作。
你还可以在artDialog 的iframeTools扩展中看到此技术身影。