|

楼主 |
发表于 2017-7-16 09:37:04
|
显示全部楼层
想实现如图,点击增加,增加打开的是一个流程的w页面,流转之后,关闭,想使用postmessage通信去关闭,总是不执行。但是我自己写了小例子,放在runtime的uiserver下可以成功,w中这么用不成功呢。
a.html
<!DOCTYPE html>
<html>
<head>
<title>Post Message</title>
</head>
<body>
<div style="width:200px; float:left; margin-right:200px;border:solid 1px #333;">
<div id="color">Frame Color</div>
</div>
<div>
<iframe id="child" src="http://localhost:8080/x5/lsLib.html"></iframe>
</div>
<script type="text/javascript">
window.onload=function(){
window.frames[0].postMessage('getcolor','http://localhost:8080/x5');
}
window.addEventListener('message',function(e){
var color=e.data;
document.getElementById('color').style.backgroundColor=color;
},false);
</script>
</body>
</html>
lsLib.html
<!doctype html>
<html>
<head>
<style type="text/css">
html,body{
height:100%;
margin:0px;
}
</style>
</head>
<body style="height:100%;">
<div id="container" style="widht:100%; height:100%; background-color:rgb(204, 102, 0);">
click to change color
</div>
<script type="text/javascript">
var container=document.getElementById('container');
window.addEventListener('message',function(e){
if(e.source!=window.parent) return;
var color=container.style.backgroundColor;
window.parent.postMessage(color,'*');
},false);
function changeColor () {
var color=container.style.backgroundColor;
if(color=='rgb(204, 102, 0)'){
color='rgb(204, 204, 0)';
}else{
color='rgb(204,102,0)';
}
container.style.backgroundColor=color;
window.parent.postMessage(color,'*');
}
</script>
</body>
</html>
能给我知道下如何关闭那个流转完的页面吗?就是想法是这两个页面通信,web项目得到通信命令关闭就销毁那个窗口,f是打开的w流程页面的ifame
window.addEventListener("message",function(e){
var command = e.data;
alert(command);
if(command=='close'){
if(f!=null){
f.destory();
}
}
},false);
这个没有执行
|
|