标签:style blog http color io os 使用 ar java
hmtl5 推出postMessage后,在解决跨文档消息通信、及跨域请求数据的问题 时方便了很多。
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event){
if (event.origin !== "http://example.org:8080")
return;
// ...
}
127.0.0.1 sx.daily.taobao.net
127.0.0.1 sx.taobao.com
在父网页中通过 iframe 嵌入子页面。
<!DOCTYPE html>
<html>
<head>
<title>门户页</title>
<meta charset="utf-8"/>
</head>
<body>
<div>
输出的内容是:<span id="msg"></span>
</div>
<!-- 通过 iframe 嵌入子页面 -->
<iframe id="widget" src="http://sx.daily.taobao.net/study/postMessage/chat.html" frameborder="0"></iframe>
<script>
var fromOrigin = "http://sx.daily.taobao.net"; //iframe来自的源
function msgHandler(e){
if(e.origin == fromOrigin){
notify(e.data);
}else{
//忽视
}
}
function notify(data){
var msg = document.querySelector(‘#msg‘);
msg.innerText = data.msg;
console.log(data);
}
window.addEventListener(‘message‘,msgHandler,true);
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>聊天件</title>
<meta charset="utf-8"/>
<style>
body{
background: #fb0;
height: 200px;
}
</style>
</head>
<body>
<h2>chat页面</h2>
<input id="txtCont" type="text" value=""/>
<button id="btnSend">发送</button>
<script>
var targOrigin = "http://sx.taobao.com"; //要发向的目标源
var btn = document.querySelector(‘#btnSend‘);
var txt = document.querySelector(‘#txtCont‘);
function sendMsg(){
//支持情况 ie9及以上,注意,ie9只支持字符.部分ie8支持
//chrome
if(window.top.postMessage){
//有些浏览器支持javascript对象,canvas imageData等数据类型
//支持情况 ie9下不支持 ie9支持 postMessage的值为字符串,不支持对象。ie10及以上支持对象
//如: {‘msg‘:txt.value}
var obj = {‘msg‘:txt.value};
// 通过 postMessage 向父窗口发送数据
window.top.postMessage(obj,targOrigin);
}
};
btn.addEventListener(‘click‘,sendMsg,true);
</script>
</body>
</html>

标签:style blog http color io os 使用 ar java
原文地址:http://www.cnblogs.com/summer_shao/p/3998695.html