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 动画效果的总结详解
May 09 HTML / CSS
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
Jul 21 HTML / CSS
使用CSS3来制作消息提醒框
Jul 12 HTML / CSS
利用CSS3的border-radius绘制太极及爱心图案示例
May 17 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
Aug 26 HTML / CSS
html5文字阴影效果text-shadow使用示例
Jul 25 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
Apr 24 HTML / CSS
canvas生成带二维码海报的踩坑记录
Sep 11 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
Apr 08 HTML / CSS
html5 video全屏播放/自动播放的实现示例
Aug 06 HTML / CSS
纯html+css实现奥运五环的示例代码
Aug 02 HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
Aug 05 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
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
PHP实现八皇后算法
2019/05/06 PHP
javascript如何使用bind指定接收者
2014/05/04 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
总结js函数相关知识点
2018/02/27 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
python从入门到精通(DAY 2)
2015/12/20 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python3.x上post发送json数据
2018/03/04 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python统计中文字符数量的两种方法
2019/01/31 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
python线程中的同步问题及解决方法
2019/08/29 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
专科毕业生就业推荐信
2013/11/01 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
办公室文员岗位职责
2015/02/04 职场文书
党支部半年考察意见
2015/06/01 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
python实现会员信息管理系统(List)
2022/03/18 Python