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 制作旋转的大风车(充满童年回忆)
Jan 30 HTML / CSS
css3 border旋转时的动画应用
Jan 22 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
Mar 16 HTML / CSS
浅析rem和em和px vh vw和% 移动端长度单位
Apr 28 HTML / CSS
CSS3中Animation动画属性用法详解
Jul 04 HTML / CSS
CSS3模拟动画下拉菜单效果
Apr 12 HTML / CSS
HTML5的新特性(1)
Mar 03 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
Jun 16 HTML / CSS
css3实现背景图片半透明内容不透明的方法示例
Apr 13 HTML / CSS
CSS基础详解
Oct 16 HTML / CSS
什么是css原子化,有什么用?
Apr 24 HTML / CSS
html5+实现plus.io进行拍照和图片等获取
Jun 01 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
合作指挥官:孟斯克
2020/03/16 星际争霸
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
Python中文件的读取和写入操作
2018/04/27 Python
django静态文件加载的方法
2018/05/20 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
Python气泡提示与标签的实现
2020/04/01 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
中学生期中自我鉴定
2014/04/20 职场文书
2014年计生标语
2014/06/23 职场文书
保研导师推荐信
2015/03/25 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
起诉状范本
2015/05/20 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python