jQuery MiniUI

标题: 如何一次性关闭所有子窗口 [打印本页]

作者: whicss    时间: 2017-7-27 09:09:54     标题: 如何一次性关闭所有子窗口

由于业务需求,4个步骤打个了4个子窗口,如何在最后一个窗口里面调用方法关闭所有子窗口,只保留最初的父页面

作者: 猩猩点灯    时间: 2017-7-27 09:58:42

可以在顶级弹出关闭,在顶级弹出的父页面捕捉窗口关闭,捕捉到了再关闭此窗口,此窗口的父页面又捕捉到窗口关闭.....以此类推,可以试试
作者: felt    时间: 2017-7-27 15:48:30

本帖最后由 felt 于 2017-7-31 16:46 编辑

1 如果是一级一级弹出的,可以下这例子

2 如果是1个页面上弹出的,可以定义一下
var t1=mini.open({})
t1.destroy() 这样可以主动关闭。



作者: whicss    时间: 2017-7-31 16:11:03

felt 发表于 2017-7-27 15:48
1 如果是一级一级弹出的,可以下这例子

2 如果是1个页面上弹出的,可以定义一下

我是一级一级弹出的,这附件里面是个树,斑竹是想表达一个啥意思?
作者: felt    时间: 2017-7-31 16:53:21

whicss 发表于 2017-7-31 16:11
我是一级一级弹出的,这附件里面是个树,斑竹是想表达一个啥意思?

[attach]9602[/attach]上传错了,是这个例子
作者: whicss    时间: 2017-8-1 09:18:32

[attach]9611[/attach]

我在三个页面都用了下面这个方法,我也在控制台看了,确实调用了,但只能关闭最后一级页面,第二个弹窗没有被关闭
function CloseWindow(action) {
  if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
  else window.close();
}

打开子窗口用的是doEdit()方法
看了下源码
function openEditDialog(url, options) {
  return mini.open({
    url: url,
    height: options.height,
    width: options.width,
    title: options.title,
    ondestroy: function (action) {
      if (options.closedCallback) {
        if (!options.closedCallback(action)) {
          return;
        }
      }
      if (top.closes.pop()) {
        mini.get(options.gridId).reload();
      }
    }
  });
}


作者: whicss    时间: 2017-8-1 09:22:47

我发现你给我的例子,第3、4标号的窗口是弹在2号的里面,而我这个好像弹在外面的
作者: dforce    时间: 2017-8-1 10:20:47

whicss 发表于 2017-8-1 09:22
我发现你给我的例子,第3、4标号的窗口是弹在2号的里面,而我这个好像弹在外面的 ...

mini.open是顶级弹出,都是在顶级页面的弹出。




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