jQuery MiniUI

标题: mini.open 打开的页面内如何通过脚本关闭页面 [打印本页]

作者: jiang524    时间: 2014-3-22 16:59:18     标题: mini.open 打开的页面内如何通过脚本关闭页面

在通过mini.open打开的页面A中,是form提交都后台然后返回到原来的A页面,此时我想在onload方法中根据返回的某个值来判断是否关闭页面,通过什么方法来关闭当前页面呢?

A页面:

有一个form,form提交后跳转到的页面仍然是A页面
在A页面中的onload方法中业务判断保存成功失败,如果成功,我想通过脚本把A页面关闭掉。
此时不知道用什么方法关闭!

A页面onload方法:
window.onload=function(){
        if(保存成功){


                //如何做能关闭A本身
                ????????????

        }
}



作者: gry    时间: 2014-3-22 23:37:23

可以呀,直接关闭就行了啊!
作者: jiang524    时间: 2014-3-23 11:05:55

gry 发表于 2014-3-22 23:37
可以呀,直接关闭就行了啊!

都不好使,已经试过,我调用CloseWindow("cancel");没有反应的。

     
function CloseWindow(action) {
    if (action == "close" && form.isChanged()) {
        if (confirm("数据被修改了,是否先保存?")) {
            return false;
        }
    }
    if (window.CloseOwnerWindow){
            return window.CloseOwnerWindow(action);
    }else{
            window.close();            
    }
}
作者: felt    时间: 2014-3-23 15:06:33

jiang524 发表于 2014-3-23 11:05
都不好使,已经试过,我调用CloseWindow("cancel");没有反应的。

     

你提交后判断保存成功直接调用CloseWindow关闭就行了,不要在onload方法里写
作者: jiang524    时间: 2014-3-23 17:29:41

felt 发表于 2014-3-23 15:06
你提交后判断保存成功直接调用CloseWindow关闭就行了,不要在onload方法里写

页面里需要上传了图片,所以是用form提交的,没办法直接调用CloseWindow方法
作者: factory    时间: 2014-3-24 10:24:02

jiang524 发表于 2014-3-23 17:29
页面里需要上传了图片,所以是用form提交的,没办法直接调用CloseWindow方法 ...

为什么要放mini.open的onload里面?mini.open是写在父页面的,你在子页面判断保存成功,然后调用CloseWindow好了啊,干嘛要父页面去关子页面?
作者: jiang524    时间: 2014-3-25 11:33:55

本帖最后由 jiang524 于 2014-3-25 12:06 编辑
factory 发表于 2014-3-24 10:24
为什么要放mini.open的onload里面?mini.open是写在父页面的,你在子页面判断保存成功,然后调用CloseWindow ...


不是放在mini.open的onLoad里面执行关闭页面,是在子页面form提交后仍然返回到该子页面,然后在子页面body的load的时候(注意不是mini.open的onload参数,而是<body>的onload方法!!),判断后台传过来的标志,如果是保存成功就调用CloseWindow方法,这个时候调用CloseWindow 关闭不了页面。
作者: felt    时间: 2014-3-25 13:25:30

jiang524 发表于 2014-3-25 11:33
不是放在mini.open的onLoad里面执行关闭页面,是在子页面form提交后仍然返回到该子页面,然后在子页面bod ...

加点延时试试
作者: factory    时间: 2014-3-25 13:32:01

jiang524 发表于 2014-3-25 11:33
不是放在mini.open的onLoad里面执行关闭页面,是在子页面form提交后仍然返回到该子页面,然后在子页面bod ...

window.CloseOwnerWindow,这个CloseOwnerWindow函数写入的时候会有个时间消耗

所以你在外面套个10毫秒的延时
window.onload= function (){
     settimeout(function(){
            close.....
    },10)
}
作者: jiang524    时间: 2014-3-25 14:21:46

factory 发表于 2014-3-25 13:32
window.CloseOwnerWindow,这个CloseOwnerWindow函数写入的时候会有个时间消耗

所以你在外面套个10毫秒的 ...

恩,按照这个方法果然能关闭了,谢谢!




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