起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4659|回复: 6

[结贴] processAfterAdvance

[复制链接]

82

主题

211

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
发表于 2017-7-16 09:30:50 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
如何在w页面发送消息通信

想在processAfterAdvance 后发送消息给主页面,
然后在主页面接受  命令

Model.prototype.processAfterAdvance = function(event){

                window.addEventListener('message',function(e){
                        var command = "close";
                        window.parent.postMessage(command,'*');
                },false);
               
        };


        Model.prototype.modelLoad = function(event){
                window.addEventListener('message',function(e){
                if(e.source!=window.parent) return;
                window.parent.postMessage(command,'*');
        },false);
        };



web项目页面

window.addEventListener("message",function(e){
                        var command = e.data;
                        //alert(command);
                        if(command=='close'){
                                if(f!=null){
                                        f.destory();
                                }       
                        }
                },false);



<%--增加按钮--%>
        function add2(){
                f = mini.open({
                url: "${pageContext.request.contextPath}/insideUser/x5",
                title: "添加用户", width: 1000, height:600,
                onload: function () {
                    var iframe = this.getIFrameEl();
                    var  iw = t1.contentWindow;
                                            iw.postMessage('send', 'http://localhost:8080/x5/');
                },
                ondestroy: function () {
                    grid.reload();
                }
            });


        }


想实现

82

主题

211

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
 楼主| 发表于 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);


这个没有执行
18.jpg
2.jpg
23.jpg
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-7-17 10:09:58 | 显示全部楼层
流转页面是windowDialog打开的?
windowDialog的关闭,可以调用windowDialog的close方法
或者用WindowReceiver组件上的方法
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

82

主题

211

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
 楼主| 发表于 2017-7-17 10:46:27 | 显示全部楼层
jishuang 发表于 2017-7-17 10:09
流转页面是windowDialog打开的?
windowDialog的关闭,可以调用windowDialog的close方法
或者用WindowRecei ...

该方法我用过了,但是不行,因为是web框架打开的w页面,这样关闭,框架页里面是一片空白,没有真正的关闭,没法也跟着关闭,所以才要使用通信,在web端将其关闭
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-7-17 11:10:07 | 显示全部楼层
web框架打开的w页面在第三方的页面中嵌入的平台的.w吗?
.w中有通过windowDialog打开的流转页面,然后要在windowDialog打开的页面跟自己的web页面通信?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

82

主题

211

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
 楼主| 发表于 2017-7-17 11:17:12 | 显示全部楼层
jishuang 发表于 2017-7-17 11:10
web框架打开的w页面在第三方的页面中嵌入的平台的.w吗?
.w中有通过windowDialog打开的流转页面,然后要在w ...

其实就是miniui和流程集成的问题,集成的w流程如果关闭的话,open的页面不会关闭,所以想起来使用html通信,这边w页面操作完毕发送信息给web系统,web系统可以关闭打开的open页面,如果在w页面关闭的话,open的页面会变成空白,但是弹出框并没有关闭
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-7-17 13:19:32 | 显示全部楼层
把具体的问题详细的描述一下,集成的w流程如果关闭的话,open的页面不会关闭什么意思?
具体是要关闭.w还是关闭.w打开的winDialog?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-20 15:05 , Processed in 0.073227 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表