浅谈postMessage多页面监听事件
最近做了一个Echarts和Highcharts多图多页面连动的效果,就用到postMessage
如下介绍:
最开始在最外围的页面也就是所有页面的父级页面添加postMessage监听事件以便监听下面子级页面的动态,代码:
window.parent.addEventListener('message',function(e){
if(e.source != window.parent) return;
var names = localStorage.getItem("toName");
window.postMessage(names,'*'); //*代表所有页面
},false)
之后在在开始的页面写入传入message指令,代码:
var objString = JSON.stringify({from:"toOne",value:data.name}); //这里就是多页面监听的重点,每次页面向父级页面传入message的时候都是用json格式传入,之后就能通过判断from的来源来判断是点击了那幅图要实现什么效果
var clickName = localStorage.setItem("toName",dataName); //本地保存一个点击对象的名称
window.parent.postMessage(data.name,'*'); //将数据的名称上传到父级
最后在不同页面的调用,代码:
window.parent.addEventListener('message',function(e){
var Title,from;
try{
var obj = JSON.parse(e.data); //转换json字符
Title = obj.value;
from = obj.from;
}catch(er){
Title = e.data;
}
if(from=="toOne"){
//用if判断是哪个页面传入的变量,对应的执行什么代码
}else{
//不满足上面的条件又执行什么
}
}
浅谈postMessage多页面监听事件的更多相关文章
- html页面监听事件
今天有个需求,类似以下: <div id="a"> <input name="yinzhangfenlei" id="yinzhan ...
- js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
页面级的键盘监听事件 document.onkeydown = function (event) { var e = event || window.event || arguments.callee ...
- jQuery页面滚动监听事件及高级效果插件
jQuery页面滚动监听事件及高级效果插件 1. One Page scroll (只适用于上下焦点图)http://www.thepetedesign.com/demos/onepage_scrol ...
- 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore
本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)--requirejs + angular + a ...
- android listview 的监听事件
今天遇到了一个比较让我头疼的问题,不过追根揭底只是我对listview理解的不够透彻罢了, 闲言少叙,说说我遇到的问题吧: 上篇随笔我写了关于listview的使用,如果你也已经写好了列表那么恭喜这一 ...
- JAVAscript学习笔记 js句柄监听事件 第四节 (原创) 参考js使用表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js中的监听事件总结
javascript事件与功能说明大全:http://tools.jb51.net/table/javascript_event 1.滚动条监听事件 例1:监听滚动条距离页面顶端距离 <scri ...
- 横向滑动的listview和其中用到的触摸监听事件详解
一.首先把横向的listview的代码放上来 HorizontalListView: package com.common.cklibrary.utils.myview; import java.ut ...
- jquery中,使用append增加新元素时,新增元素的绑定监听事件失效的解决办法
$("outerSelector").on("eventType","innerSelector",function(){}); 举例:如果 ...
随机推荐
- NET基础课--NET的一些概念0
0.CIL--公共中间语言 VC++:经过预编译,编译,汇编和链接生成本地可执行代码,支持它运行的是OS和本地cpu指令集. C#: 在.net框架下类似c#的高级语言经过编译生成的文件叫程序集 ...
- 8.0 BOM对象
主要的掌握的知识结构图 1 Window 2 控制窗口.框架.弹出窗口 3 利用location对象中的页面信息 4 使用 navigator 对象了解浏览器 1.1 BOM的核心对象是window, ...
- 原创+部分引用啦:C# Winform界面中的分隔线问题
C sharp 中Winform中的控件很多,一个小小的问题居然会绕上一个小弯子,做界面的时候, 你需要在界面上弄一条分隔线,把相关的功能分隔开来,结果原来在其它 IDE编辑器里很容易实现的这个功能, ...
- C# socket网络编程 基于TCP协议
socket 服务器端: 1.创建socket Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ...
- SQLSERVER和sybase的差异
sybase sqlserver *= left join =* right join
- jquery file upload 后台收到的文件名中文乱码, filename中文乱码
在jQuery File Upload.js文件里,在以下这个js中有个成员叫做 _initXHRData, 是一个function, 在这个function的最后部分有一个if-else分支,如下:
- SSH 概念及使用详解
注意:转载请注明出处:http://www.programfish.com/blog/?p=124 SSH 基本概念 SSH 英文全称是secure shell,字面意思:安全的shell. SSH协 ...
- Nginx的Upload上传模块
前段时间做一个项目,需要上传文件,差不多需要20M左右,普通用php处理会比较麻烦,经常超时,而且大量占用资源.于是搜索了下,决定用nginx的upload上传模块来处理. 你可以在这里:http:/ ...
- mvn打包发布
一:打包 cmd进入工作目录运行命令 1: mvn clean 2: mvn install 3: mvn clean compile 4: mvn package -DiskipTest ...
- try-catch-finally块的运行机制
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 也许你的答案是在return之前,但往更细地说,我 ...