jQuery MiniUI

标题: window 弹出经过跳转到达页面怎么获得最后页面的方法 [打印本页]

作者: jrx    时间: 2017-11-28 16:11:09     标题: window 弹出经过跳转到达页面怎么获得最后页面的方法

父页面
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呢
要在父页面和子页面直接传数据的


作者: jrx    时间: 2017-11-28 16:24:18

mini.window 可以用window.dialogArguments吗?
作者: felt    时间: 2017-11-28 17:41:51

jrx 发表于 2017-11-28 16:24
mini.window 可以用window.dialogArguments吗?

这个pop.jsp是做什么的?
作者: jrx    时间: 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定义的方法?
作者: dforce    时间: 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加载完毕。
作者: jrx    时间: 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的格式,没办法全部去改成回调。谢谢指教!!
作者: felt    时间: 2017-12-1 17:49:36

jrx 发表于 2017-12-1 16:46
这个问题呢?
function getPerson(){
        var param = {w:630,h:550};

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




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2