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

QQ登录

只需一步,快速开始

查看: 4995|回复: 12

[处理中1] 关闭旧页面同时打开新页面,如何实现?

[复制链接]

32

主题

116

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2016-10-19 21:20:46 | 显示全部楼层 |阅读模式
本帖最后由 qq883936 于 2016-10-20 13:02 编辑

父页面打开 子页面1,子页面执行一段程序后自动关闭页面,同时打开新页面,要如何实现?

我现在是在父页面里调用windowDialog.open打开子页面,子页面执行一段程序后调用close关闭,在关闭前发送 this.owner.send给父页面,父页面里有windowDialog1Receive事件收到信息后,再调用windowDialog.open打开新页面。 实际打开新页面没成功,请教怎么回事?

wex 3.5版本

37

主题

97

帖子

748

积分

高级会员

Rank: 4

积分
748
QQ
发表于 2016-10-20 00:06:43 | 显示全部楼层
本帖最后由 anwar312 于 2016-10-20 00:15 编辑

简单的方法是在windowDialog1的onReceive事件中给某个控件(例如input,可设为隐藏)赋值或改变值,再在那个控件的onChange事件中调用windowDialog.open即可。
回复 支持 反对

使用道具 举报

32

主题

116

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2016-10-20 13:01:08 | 显示全部楼层
妙法。脑子不够用啊
回复 支持 反对

使用道具 举报

32

主题

116

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2016-10-20 13:04:16 | 显示全部楼层
@justep团队,再调用windowDialog.open打不开新页面是怎么回事?
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-20 16:31:10 | 显示全部楼层
qq883936 发表于 2016-10-20 13:04
@justep团队,再调用windowDialog.open打不开新页面是怎么回事?

路径写了么? 正确的方法是 this.comp("windowDialogXid").open()
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

32

主题

116

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2016-10-20 17:23:47 | 显示全部楼层
闰土 发表于 2016-10-20 16:31
路径写了么? 正确的方法是 this.comp("windowDialogXid").open()

路径是对的。

这个页面在父页面程序的其他地方也有调用打开,都是正常的。用的是this.comp("windowDialog1").open

在onReceived里面不能打开。
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-21 11:29:16 | 显示全部楼层
qq883936 发表于 2016-10-20 17:23
路径是对的。

这个页面在父页面程序的其他地方也有调用打开,都是正常的。用的是this.comp("windowDialo ...

代码贴上来看看,要不自己打debugger 调试一下,看一下,this指代正确,路径正确,没道理打不开
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

32

主题

116

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2016-10-21 13:43:09 | 显示全部楼层
本帖最后由 qq883936 于 2016-10-21 13:47 编辑

        Model.prototype.windowDialog1Receive = function(event){
                if(event.data.reload){
                        this.comp("baasData1").refreshData();
                        this.comp("list1").refresh();
                        this.comp("baasData2").refreshData();
                        this.comp("list2").refresh();
                        this.comp("baasData3").refreshData();
                }
                if(event.data.updateshare){
                        this.prepareShareMenu(desc,shareid);
                }
                if(event.data.linkMemberCenter){
                        alert("true");
                        this.comp("windowDialog1").open({
                                src:require.toUrl("./linkMemberCenter.w?"+Math.random()),
                                params:{
                                        linkid:memberid,
                                        openidpenid,
                                        memberid:event.data.memberid,//memberid
                                        membername:event.data.membername,
                                        desc:desc,
                                        shareid:shareid
                                }
                        });
                }
        };
显示"true"没问题,windowwindowDialog1.open没反应。子页面相关程序片段如下:                                if(newlinkmember){
                                        self.owner.send({linkMemberCenter:true,memberid:newid,membername:baasD.val("name")});
                                        self.owner.close();
                                        window.close();                        
                                }


回复 支持 反对

使用道具 举报

32

主题

116

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2016-10-28 23:16:31 | 显示全部楼层
@闰土   我代码贴了
回复 支持 反对

使用道具 举报

8

主题

131

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
发表于 2016-10-29 00:15:26 | 显示全部楼层
本帖最后由 deltaboy 于 2016-10-29 00:22 编辑
qq883936 发表于 2016-10-21 13:43
Model.prototype.windowDialog1Receive = function(event){
                if(event.data.reload ...

我表示我是这么写的open:
this.comp("windowDialog").open({"src":require.toUrl("./schedule.w"),"data":{"rwid":this.comp("rwData").getValue("id")}});

还有window.close()是关掉整个窗口了吧,注释下看看呗

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 19:07 , Processed in 0.105019 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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