父页面代码:

<!DOCTYPE html>
<html>
<head>
<title>选择位置demo</title> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <script type="text/javascript" src="dist/jquery-1.7.1.js"></script>
<script type="text/javascript" src="libs/layer/layer.js"></script>
</head>
<body>
<iframe id="ifr" src="http://10.100.10.167:8061" style="width: 1200px; height: 800px;"></iframe> <script type="text/javascript">
$("#ifr").load(function () {
var data = {
method: "selectLocation",
url: window.location.href,
lng: 113.13,
lat: 23.01
}; //给地图页面发消息
window.ifr.contentWindow.postMessage(JSON.stringify(data), ifr.src);
}); //监听消息
window.addEventListener("message", function (e) {
var d = eval("(" + e.data + ")"); if (d.method == "selectLocationComplateCallback") {
layer.alert(d.lng.toFixed(7) + "," + d.lat.toFixed(7), { title: "信息" });
}
});
</script>
</body>
</html>

子页面JS代码:

//监听父页面发来的消息
window.addEventListener("message", function (e) {
var d = eval("(" + e.data + ")"); if (d.method == "selectLocation") {
if (d.lat && d.lng) drawUtil.setSelectedLocation(d.lng, d.lat); //设置已选择的位置坐标 selectLocation(); //选择位置完成回调
selectLocationComplateCallback = function (lat, lng) {
var data = {
method: "selectLocationComplateCallback",
lat: lat,
lng: lng
}; window.parent.postMessage(JSON.stringify(data), d.url);
};
}
});

HTML5 postMessage 跨域跨窗口传递消息的更多相关文章

  1. 通过Html5的postMessage和onMessage方法实现跨域跨文档请求访问

    在项目中有应用到不同的子项目,通过不同的二级域名实现相互调用功能.其中一个功能是将播放器作为单独的二级域名的请求接口,其他项目必须根据该二级域名调用播放器.最近需要实现视频播放完毕后的事件触发,调用父 ...

  2. postMessage解决跨域跨窗口消息传递

    平时做web开发的时候关于消息传递,除了客户端与服务器传值还有几个经常会遇到的问题 页面和其打开的新窗口的数据传递 页面与嵌套的iframe消息传递 这些问题都有一些解决办法,但html5引入的mes ...

  3. html5 postMessage解决iframe跨协议跨域通信问题

    a.html有个iframe载入b.com/login.html,当login完成时通知a.html页面登录完成并传递UserName 1.a.html 监听消息 window.addEventLis ...

  4. CORS跨域、Cookie传递SessionID实现单点登录后的权限认证的移动端兼容性测试报告

    简述 本文仅记录如标题所述场景的测试所得,由于场景有些特殊,且并不需兼容所有浏览器,所以本文的内容对读者也许并无作用,仅为记录. 场景.与实现 需在移动端单点登录 需在移动端跨域访问我们的服务 基于历 ...

  5. HTML5 postMessage 和 localStorage 实现窗口间通信

    LocalStorage(不能跨域) 基本思想:通过localStorage的标准事件storage来实现跨页面通信,即页面A通过写入特定数据触发页面B的storage事件,页面B响应之后再写入数据通 ...

  6. [跨域]跨域解决方法之Ngnix反向代理

    跨域原理:http://www.cnblogs.com/Alear/p/8758331.html 介绍Ngnix之前,我么先来介绍下代理是什么~ 代理相当于中间人,中介的概念 代理分为正向代理和反向代 ...

  7. 跨域跨域跨域,从此say goodbye

    跨域这个问题每个开发者都会遇到,只是时间先后而已,你不搞清楚它他就像狗皮膏药一样粘着你,在你求职生涯中不停的遇到,然后你每次都要做这个功课,终于有一天这个名词已经让我忍无可忍了,下定决心必须搞定它,要 ...

  8. webmvc 拦截器 允许跨域 跨域问题 sessionid不一样

    package cn.com.yitong.ares.filter; import java.io.IOException; import javax.servlet.Filter;import ja ...

  9. html5 postMessage解决跨域、跨窗口消息传递

    一些麻烦事儿 平时做web开发的时候关于消息传递,除了客户端与服务器传值还有几个经常会遇到的问题 1.页面和其打开的新窗口的数据传递 2.多窗口之间消息传递 3.页面与嵌套的iframe消息传递 4. ...

  10. html5 postMessage解决跨域、跨窗口消息传递[转载]

    原文:http://www.cnblogs.com/dolphinX/p/3464056.html 一些麻烦事儿 平时做web开发的时候关于消息传递,除了客户端与服务器传值还有几个经常会遇到的问题 1 ...

随机推荐

  1. L3-011 直捣黄龙

    #include<bits/stdc++.h> using namespace std; using pii = pair<int, int>; const int N = 3 ...

  2. 手撕Vue-Router-初始化路由信息

    前言 经过上一节课的学习,我们已经完成了提取我们想要的路由信息数据格式,提取完毕了之后,接下来我们该干什么,接下来需要做的步骤就是监听路由的变化,保存当前的路由. 那么就会遇到几个问题,就是怎么监听, ...

  3. 宏(define)与常量(const)

    既然选择了远方,便只顾风雨兼程. 宏(define) 一. 宏的理解   宏是一种批量处理的称谓.一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则 ...

  4. 解决GET http://192.168.41.103:9528/sockjs-node/info?t=1678639328658 net::ERR_CONNECTION_TIMED_OUT

    问题现象 解决办法 找到依赖/node_modules/sockjs-client/dist/sockjs.js注释掉下面的一行代码

  5. Stream API学习笔记

    Java8 中Stream API介绍   Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象.这种风格将要处理的元素集合看作一种流, ...

  6. Educational Codeforces Round 26 Problem B

    B. Flag of Berland time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  7. Scrapy在pipeline中集成mongodb

    settings.py中设置配置项 MONGODB_HOST = "127.0.0.1" MONGODB_PORT = 27017 MONGODB_DB_NAME = " ...

  8. 华企盾DSC启动服务器提示“发生系统错误5”

    解决方法:没有管理员权限 导致,需要以管理员权限运行服务器安装包,覆盖安装一下

  9. NetSuite 开发日记 —— 库存详细信息记录更改数量问题

    详细报错: "type":"error.SuiteScriptError","name":"USER_ERROR",&q ...

  10. .Net中的AutoScrollPosition问题 (panel 滚动条的位置设定)

    本文转自:http://www.cnblogs.com/h2appy/archive/2008/04/23/1167400.html 有Panel类型的窗体panel1,其AutoScroll设为了T ...