很多框架存在父子关系,操作起来十分麻烦,很多同学经常出现这样悲催的代码:
复制代码 代码如下:
window.parent.document.getElementById("main")
.contentWindow.document.getElementById('input').value =
document.getElementById('myIframe')
.contentWindow.document.getElementById('s0').value;
其实这个问题可以被大大的简化,框架应用中有一个固定不变的窗口叫window.top,如果我们把数据缓存到这个页面,其下所有框架都可以获取到,无论子页面如何变幻。不需要采用Cookie,也不需要采用什么HTML5本地数据库策略,你只需要每个页面引用一个js文件,内容如下:
复制代码 代码如下:
var share = {
/**
* 跨框架数据共享接口
* @param {String} 存储的数据名
* @param {Any} 将要存储的任意数据(无此项则返回被查询的数据)
*/
data: function (name, value) {
var top = window.top,
cache = top['_CACHE'] || {};
top['_CACHE'] = cache;
return value ? cache[name] = value : cache[name];
},
/**
* 数据共享删除接口
* @param {String} 删除的数据名
*/
removeData: function (name) {
var cache = window.top['_CACHE'];
if (cache && cache[name]) delete cache[name];
}
};
这个寥寥数行的方法可以共享任意类型的数据供各个框架页面读取,它与页面名称、层级毫无关系,就算哪天框架页面层级被修改,你也完全不用担心,它可正常工作。
例如,如我们可以在A页面存入共享数据:
复制代码 代码如下:
share.data(‘myblog', ‘https://www.');
share.data(‘editTitle', function (val) {
document.title = val;
});
然后某框架页面任意取A页面的数据
复制代码 代码如下:
alert(‘我的博客地址是: ‘ + share.data(‘myblog');
var editTitle = share.data(‘editTitle');
editTitle(‘我已经获取到了数据');
对,就这么简单!你还可以在artDialog 的iframeTools扩展中看到此技术身影。
相关推荐:
SQL语法 分隔符理解小结
mysql 编码设置命令
MSSQL 首字母替换成大写字母
php面向对象全攻略 (十) final static const关键字的使用
SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较
解决表单中第一个非隐藏的元素获得焦点的一个方案
正则表达式中的反向预搜索实现
jQuery 使用手册(六)
js 冒泡事件与事件监听使用分析
php面向对象全攻略 (十七) 自动加载类
css 有弹动效果的网页导航
MSSQL2005 INSERT,UPDATE,DELETE 之OUTPUT子句使用实例
Discuz!NT 3与asp.net 整合的实例教程
Flex Data Binding详解
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
javascript 表单验证常见正则
asp.net 验证码生成和刷新及验证
JavaScript 自动完成脚本整理(33个)
javascript 页面划词搜索JS
php self,$this,const,static,->的使用
php 分库分表hash算法
javascript 关于# 和 void的区别分析
ASP.NET 在线文件管理
asp 小偷采集程序原理与常用函数方法
JavaScript 基础知识 被自己遗忘的
ASP 高级模板引擎实现类
asp.net url重写后页面回传问题
jQuery checkbox全选/取消全选实现代码
jQuery Ajax之$.get()方法和$.post()方法
读大数据量的XML文件的读取问题
jquery 子窗口操作父窗口的代码
Cython 三分钟入门教程
使用zend studio for eclipse不能激活代码提示功能的解决办法
PHP 向右侧拉菜单实现代码,测试使用中
Javascript 刷新全集常用代码
JavaScript CSS 通用循环滚动条
PHP 正则表达式函数库(两套)
Wordpress php 分页代码
JavaScript switch case 的用法实例[范围]
jQuery 常见学习网站与参考书
写入cookie的JavaScript代码库 cookieLibrary.js
Mootools 1.2 手风琴(Accordion)教程
jQuery技巧大放送 学习jquery的朋友可以看下
JSP application(return String)用法详例
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
兼容多浏览器的JS 浮动广告[推荐]
javascript 限制输入脚本大全
json 实例详细说明教程
js 操作table之 移动TR位置 兼容FF 跟 IE