Web 通信技术 ——跨文档信息传输(JavaScript)
*/
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名:text.html
* 作者:常轩
* 微信公众号:Worldhello
* 完成日期:2016年11月2日
* 版本号:V1.0
* 程序输入:无
* 程序输出:见运行结果
*/
Web 通信新技术 ——跨文档信息传输
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- <meta http-equiv="refresh" content="5">-->
<title>postMessage子页面</title>
</head>
<body>
<div>
<p>接受来自:</p>
<h1 id="h1"></h1>
<p>的消息:</p>
<h1 id="p_text"></h1>
</div>
<input id="texts" type="text" name="textss">
<script type="text/javascript">
// 窗口事件监听:监听message
window.addEventListener("message",function(e){
var sts="123";
// e.origin:发送消息的地址,谁发的消息就是谁的
// 接收时候,可以加个判断;避免接收来源不明的URL发过来的数据
//if( e.origin != "" ){
// return;
// }
document.getElementById("h1").innerHTML = e.origin;
// e.data:发消息的内容
document.getElementById("p_text").innerHTML = e.data;
// 接收到消息后,在回过去,回个话;
// 通过访问message的source的属性,来获取消息发送源的窗口对象,
// 也就是能知道是谁发的消息,在通过postMessage,给发消息者回个话
e.source.postMessage(sts,e.origin);
},false);
</script> </body>
</html>
接收页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- <meta http-equiv="refresh" content="5">-->
<title>postMessage主页面</title>
</head>
<body>
<div>
<p>接受来自:</p>
<h1 id="h1"></h1>
<p>的消息:</p>
<h1 id="p_text"></h1>
</div> <iframe width="500px" height="500px" id="iframe"
src="http://1.aboutxuan.applinzi.com/test/test.html"
onload="send()">
</iframe>
<script type="text/javascript">
// 窗口事件监听:监听message
window.addEventListener("message",function(e){
// e.origin:发送消息的地址,谁发的消息就是谁的
// 接收时候,可以加个判断;避免接收来源不明的URL发过来的数据
//if( e.origin != "http://www.aboutxuan.applinzi.com" ){
// return;
//}
document.getElementById("h1").innerHTML = e.origin;
// e.data:发消息的内容
document.getElementById("p_text").innerHTML = e.data;
},false); // 发消息
function send(){
// 获取嵌入的iframe
var iframe = window.frames[0],
send_origin = document.getElementById("iframe").getAttribute("src");
iframe.postMessage("我是父页面的消息",send_origin);
}
</script>
</body>
</html>
从自己想实现这一个功能到大体可以实现,花了点功夫。因为没有人带,所以走了些弯路。虽然现在只是有个雏形,不过还是有信心做出点东西的。加油!!!
Web 通信技术 ——跨文档信息传输(JavaScript)的更多相关文章
- web通信之跨文档通信 postMessage
index.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&qu ...
- HTML5跨文档消息传递
HTML5定义了一些javascript API,其中有一个就是跨文档消息传递(cross-document-messaging简称XDM). 现在XDM已经作为一个规范独立了出来,名字为:Web M ...
- 通过Html5的postMessage和onMessage方法实现跨域跨文档请求访问
在项目中有应用到不同的子项目,通过不同的二级域名实现相互调用功能.其中一个功能是将播放器作为单独的二级域名的请求接口,其他项目必须根据该二级域名调用播放器.最近需要实现视频播放完毕后的事件触发,调用父 ...
- 跨文档消息传递----postMessage()
HTML5 规范中,提出了XDM,又称为 跨文档消息传递,其核心是 postMessage()方法,进行跨域和跨文档消息传递,示例如下: <div class="CrossDocume ...
- HTML(六)HTML iframe 使用postMessage方法进行跨文档消息传递
什么是iframe HTML内联框架元素 <iframe> 表示嵌套的浏览上下文,有效地将另一个HTML页面嵌入到当前页面中. <iframe id="inlineFram ...
- HTML5实战与剖析之跨文档消息传递(iframe传递信息)
在来自不同域名的页面间传递消息一般统称为跨文档消息传送,简称XDM.如,www.leemagnum.com域中的页面与位于一个内嵌框架中的http://blog.csdn.net/lee_magnum ...
- HTML5 跨文档消息传输
对窗口对象的message事件进行监听 window.addEventListener("message", function(event) { // 处理程序代码 }, fals ...
- Web页面引入文档编辑器报风险
Web页面引入文档编辑器会报风险,则需要以下操作: <system.web> <httpRuntime requestValidationMode="2.0" / ...
- HTML5中的跨文档消息传递
跨文档消息传送(cross-document messaging),有时候也简称为XDM,指的是来自不同域的页面间传递消息.例如,www.w3cmm.com域中的一个页面与一个位于内嵌框架中的p2p. ...
随机推荐
- Filter过滤器的应用
Filter过滤器作用:在每次请求服务资源时做过滤处理. 原理:Filter接口中有一个doFilter方法,当开发人员编写好Filter类实现doFilter方法,并配置对哪个web资源进行拦截后, ...
- 新服务器搭建-总结: 下载nginx,jdk8,docker-compose编排(安装mysql,redis) 附安装
三明SEO: 前言 如题, 公司新买了一条4核16G的服务器, 不得不重新搭建环境, 只能一一重来, 做个记录 1.nginx : 手动安装 2.jdk8: 手动安装 3. 安装docker 及doc ...
- Educational Codeforces Round 68 差G
Educational Codeforces Round 68 E 题意:有 n 个线段,每个都是平行 x 或者 y 轴,只有互相垂直的两线段才会相交.问形成了多少个矩形. \(n \le 5000, ...
- vue axios从服务器加载图片并显示
使用场景: 后台传给前端一个图片二进制流,但是要添加httpp header,但是在传统的用img标签查看图片,无法添加http header this.$axios({ method: 'get', ...
- vim的背景配置
1.vim背景颜色的配置 在usr/share/vim/vim74/colors 目录下有可以配置的颜色方案,可以查看: 命令:vim/etc/vimrc 打开vim的配置文件, 在最后加入一 ...
- GPIO口的脚本配置之——全志H3script.bin
此脚本的作用之一是配置GPIO的默认状态: 如:功能,内部电阻状态,驱动能力等. 1.但是直接打开script.bin 文件则会出现乱码,那么我们怎么才可以打开并更改该脚本的配置呢? 在路径uboot ...
- Iterator模式
Iterator英文意思是重复做某件事,中文翻译为迭代器,这个设计模式中主要有Iterator(迭代器),ConcreteIterator(具体的迭代器),Aggergate(集合),Concrete ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块加载图片
加载图片 使用几何绘图无法画出精细的图形,所以我们可以把现成的图片加载到 Pygam e 中直接使用 . 加载图片的语法为 : 图片加载后通常会用 convert 方法加以处理, 以增加显示速度,语法 ...
- LeetCode No.109,110,111
No.109 SortedListToBST 有序链表转换二叉搜索树 题目 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的 ...
- 初试vue
Vue了解 """ vue框架 vue是前台框架:Angular.React.Vue vue:结合其他框架优点.轻量级.中文API.数据驱动.双向绑定.MVVM设计模式. ...