jQuery MiniUI

 找回密码
 立即注册
查看: 2231|回复: 6
打印 上一主题 下一主题

window 弹出经过跳转到达页面怎么获得最后页面的方法 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2017-11-28 16:11:09 |只看该作者 |倒序浏览
父页面
function openW() {
     var qw = new mini.Window();
        qw.setWidth("300px");
        qw.setHeight("200px");
     qw.setUrl("http://localhost:8080/xxx/common/pop.jsp?url=tools/select/bizSys-select.jsp?ref=1&type=single");
     qw.on('load',function(e){

   var iframe = this.getIFrameEl();
            iframe.contentWindow.SetData("434325");     
        });
     qw.on('destroy',function (action) {
      if (action.type == "destroy") {       //如果点击“确定”
                var iframe = this.getIFrameEl();
                var data = iframe.contentWindow.GetData();  //弹出页面中的方法
                data = mini.clone(data);   
            }   
     });
     qw.set({closeAction:"destroy"});
        qw.showAtPos("400px","50px");
        //qw.destroy();
    }
子页面
最终显示是
tools/select/bizSys-select.jsp?ref=1&type=single");的内容

中间页面pop.jsp
<iframe name="ifrm_main"
     src="${purl}"
     width="100%"
     height="100%"
     frameborder="0"
     scrolling="auto">
   </iframe>

现在发现整个系统跳转都用到pop.jsp处理跳转
var iframe = this.getIFrameEl();
iframe.contentWindow 就undefined了,这样该如何取contentWindow呢
要在父页面和子页面直接传数据的

Rank: 1

沙发
发表于 2017-11-28 16:24:18 |只看该作者
mini.window 可以用window.dialogArguments吗?

Rank: 8Rank: 8

板凳
发表于 2017-11-28 17:41:51 |只看该作者
jrx 发表于 2017-11-28 16:24
mini.window 可以用window.dialogArguments吗?

这个pop.jsp是做什么的?

Rank: 1

地板
发表于 2017-11-29 09:11:04 |只看该作者
felt 发表于 2017-11-28 17:41
这个pop.jsp是做什么的?

window的url是pop.jsp,这样
qw.setUrl("http://localhost:8080/xxx/common/pop.jsp?url=tools/select/bizSys-select.jsp?ref=1&type=single");

pop.jsp里面有个frame,
<iframe name="ifrm_main"
     src="${purl}"
     width="100%"
     height="100%"
     frameborder="0"
     scrolling="auto">
   </iframe>
里面的src是比如src="tools/select/bizSys-select.jsp

就是打开的子页面是有用frame引入bizSys-select.jsp的,那么如何用miniui的getIFrameEl(); 获取bizSys-select.jsp定义的方法?

Rank: 8Rank: 8

5#
发表于 2017-11-29 10:22:52 |只看该作者
jrx 发表于 2017-11-29 09:11
window的url是pop.jsp,这样
qw.setUrl("http://localhost:8080/xxx/common/pop.jsp?url=tools/select/bi ...

你这里多了一层,就无法获取到了,在mini-window的onload事件是在pop.jsp加载完毕触发的,但是这时候并不能保证内部加载的iframe加载完毕。

Rank: 1

6#
发表于 2017-12-1 16:46:07 |只看该作者
dforce 发表于 2017-11-29 10:22
你这里多了一层,就无法获取到了,在mini-window的onload事件是在pop.jsp加载完毕触发的,但是这时候并不 ...

这个问题呢?
function getPerson(){
        var param = {w:630,h:550};
        var where = {};
        var result = DICT.getDictObj();
        alert(0);
        if(result && result.length>0){
                alert(result);
        }

}

DICT.getDictObj=function(){
    var t = mini.open({
        url: url,
        //title:"ABCDEFG",
        width: (p&&p.w) ? p.w : 400,
        height: (p&&p.h) ? p.h : 300,
        onload: function () {
                        var iframe = this.getIFrameEl();
            iframe.contentWindow.SetData(options);     
        },
        ondestroy: function (v) {
                }
    return res;   
        }
    });
        t.showAtPos();   
        //window.showModelessDialog();原来的方法
};   
在运行中alert(0);
if(result && result.length>0){
                alert(result);
        }
        是先于mini.open执行的,或者是同时?总之result无法获得mini.open操作后的返回值。
        这个可以通过设置miniui解决吗?还是只能自己改变js调用方式?
        因为现在是把原来window.showModelessDialog()改造成miniui,getPerson是很多页面调getDictObj的格式,没办法全部去改成回调。谢谢指教!!

Rank: 8Rank: 8

7#
发表于 2017-12-1 17:49:36 |只看该作者
jrx 发表于 2017-12-1 16:46
这个问题呢?
function getPerson(){
        var param = {w:630,h:550};

js模拟的弹出是不能像原生的那样阻塞代码的,所以也就不能像原生的那样用。
mini.open只能通过回调来处理

Archiver|普加软件

GMT+8, 2024-9-23 21:21 , Processed in 1.030150 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部