html5跨域通讯之postMessage的用法总结


Posted in HTML / CSS onNovember 07, 2013

postMessagePortal.html 页面代码

复制代码
代码如下:

<!DOCTYPE html>
<title>标题</title>
<link rel="stylesheet" href="styles.css">
<link rel="icon" href="http://apress.com/favicon.ico">
<script></p> <p>var targetOrigin = "http://22527.vhost20.boxcdn.cn";</p> <p>var defaultTitle = "Portal";
var notificationTimer = null;</p> <p>function messageHandler(e) {
if (e.origin == targetOrigin) {
notify(e.data);
} else {
// ignore messages from other origins
}
}</p> <p>function sendString(s) {
document.getElementById("widget").contentWindow.postMessage(s, targetOrigin);
}</p> <p>
function notify(message) {
stopBlinking();
blinkTitle(message, defaultTitle);
}</p> <p>function stopBlinking() {
if (notificationTimer !== null) {
clearTimeout(notificationTimer);
}
document.title = defaultTitle;
}</p> <p>function blinkTitle(m1, m2) {
document.title = m1;
notificationTimer = setTimeout(blinkTitle, 1000, m2, m1)
}</p> <p>function sendStatus() {
var statusText = document.getElementById("statusText").value;
sendString(statusText);
}</p> <p>function loadDemo() {
document.getElementById("sendButton").addEventListener("click", sendStatus, true);
document.getElementById("stopButton").addEventListener("click", stopBlinking, true);
sendStatus();
}
window.addEventListener("load", loadDemo, true);
window.addEventListener("message", messageHandler, true);</p> <p></script></p> <p><h1>跨域通讯</h1>
传递信息:<input type="text" id="statusText" value="Online">
<button id="sendButton">确定</button>

<iframe id="widget" src="http://22527.vhost20.boxcdn.cn/postMessageWidget.html"></iframe>
<p>
<button id="stopButton">停止标题闪烁</button>
</p>


postMessageWidget.html页面的代码

复制代码
代码如下:

<!DOCTYPE html>
<title>标题</title>
<link rel="stylesheet" href="styles.css">
<script></p> <p>var targetOrigin = "http://www.weixiu0376.cn";</p> <p>// TODO whitelist array</p> <p>function messageHandler(e) {
if (e.origin === "http://www.weixiu0376.cn") {
document.getElementById("status").textContent = e.data;
} else {
// ignore messages from other origins
}
}</p> <p>function sendString(s) {
window.top.postMessage(s, targetOrigin);
}</p> <p>function loadDemo() {
document.getElementById("actionButton").addEventListener("click",
function() {
var messageText = document.getElementById("messageText").value;
sendString(messageText);
}, true);</p> <p>}
window.addEventListener("load", loadDemo, true);
window.addEventListener("message", messageHandler, true);</p> <p></script>
<p>显示接收信息: <strong id="status"></strong><p>
<div>
<input type="text" id="messageText" value="填写消息内容">
<button id="actionButton">发送消息</button>
</div>
HTML / CSS 相关文章推荐
CSS3教程(8):CSS3透明度指南
Apr 02 HTML / CSS
总结30个CSS3选择器
Apr 13 HTML / CSS
基于Modernizr 让网站进行优雅降级的分析
Apr 21 HTML / CSS
HTML5 中新的全局属性(整理)
Jul 31 HTML / CSS
html5绘制时钟动画
Dec 15 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
Mar 25 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
Jun 01 HTML / CSS
HTML5实现文件断点续传的方法
Jan 04 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
Jul 11 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
Dec 29 HTML / CSS
吃透移动端 Html5 响应式布局
Dec 16 HTML / CSS
CSS3鼠标悬浮过渡缩放效果
Apr 17 HTML / CSS
用canvas实现图片滤镜效果附演示
Nov 05 #HTML / CSS
html5 的a标签 Href 拨电话的写法
Nov 04 #HTML / CSS
HTML5和以前HTML4的区别整理
Oct 20 #HTML / CSS
html5开发之viewport使用
Oct 17 #HTML / CSS
HTML5计时器小例子
Oct 15 #HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
Oct 14 #HTML / CSS
使用HTML5技术开发一个属于自己的超酷颜色选择器
Sep 22 #HTML / CSS
You might like
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
PHP高级OOP技术演示
2009/08/27 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
js控制frameSet示例
2013/09/10 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
监理员的岗位职责
2013/11/13 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
环保宣传标语
2014/06/12 职场文书
纪律教育月活动总结
2014/08/26 职场文书
2014年村官工作总结
2014/11/24 职场文书
安全教育培训心得体会
2016/01/15 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书