浅谈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(){}); 举例:如果 ...
随机推荐
- bad interpreter: No such file or directory
经常会遇到这种情况,在windows下写的脚本,代码会在linux下无法执行,错误就是: bad interpreter: No such file or directory 1.原因 这通常都是由于 ...
- undefined和null的区别
在javascript中undefined和null几乎是没有区别的 undefined==null;//true; 区别: null是一个表示“无”的对象,转为数值为0:或者说没有对象,此处 ...
- jquery模拟checkbox效果,以及background-size在jquery中的使用。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- javascript 模仿回车键事件
<script> $(function(){ var _login = function (){ var _name = $('#name'); var _password = $('#p ...
- .NET winform 的keypress事件中判断当用户按下的是哪个键
keys是按键的枚举类型 private void txtPropertyValue_KeyPress(object sender, KeyPressEventArgs e) { if ((Keys) ...
- OpenCV——写手势识别碰到的各种错误
最近写opencv的手势识别时,真的碰到了好多好多程序运行时的错误. 比如: 位置冲突: findcontours函数的使用错误: 各种符号的加载错误: 这种符号加载的错误,一般用网上各种方法就可以解 ...
- OpenCV——CvMatchShapes函数
功能:根据计算比较两张图像Hu不变距(函数返回值代表相似度大小,完全相同的图像返回值是0,返回值最大是1) double cvMatchShapes(const void* object1, cons ...
- uva 1595 Symmetry“结构体”
给出平面上N(N<=1000)个点.问是否可以找到一条竖线,使得所有点左右对称,如图所示: 则左边的图形有对称轴,右边没有. Sample Input 3 5 -2 5 0 0 6 5 4 ...
- C++、GDAL创建shapefile,并向矢量文件中添加网格
//总体来说这个过程就是构建数据源->构建层->构建要素->构建形状->关闭数据源. //要包含的GDAL头文件 #include <gdal_priv.h> #i ...
- Android网络连接的两种方法:apache client和httpurlconnection的比较
另见http://blog.csdn.net/mingli198611/article/details/8766585 在官方blog中,android工程师谈到了如何去选择apache client ...