页面跳转,子页面调用父页面的方法

需求是,一个页面(父页面),跳转一个页面(子页面),操作点击事件,关闭子页面,刷新父页面的数据。

遇到的关键点

  • 子页面中调用父页面的方法,这个方法必须是全局,不能是局部

1.第一种写法

在点击事件完成后,调window.close();方法

$('auditbtn').click(function(){ //点击审核
	isExamined = true;
    window.close();
})

在script中监听页面的onunload事件

var isExamined = false; //是否操作了审核
if(GetQueryString('from') == 'childmonitor'){ //判断需要关闭的标识
    window.onunload = function(){
        var parentWin = window.opener;
        if(parentWin && isExamined){
            parentWin.searchAuditList()
        }   
    }
}

这样的话,新的问题出现了

window.close();在chrome,firefox等中有时候会不起作用。

只能用window.open("about:blank","_self").close();替代,相当于子页面又做了跳转,监听不到onunload事件

终极解决办法

原来,还可以写一个全局的方法,在局部去调用

function _closeWindow(){
    var parentWin = window.opener;
    if(GetQueryString('from') == 'childmonitor' && parentWin){
        parentWin.searchAuditList();
        window.close();
        window.open("about:blank","_self").close();
    }
}

然后,直接在子页面的点击事件中调用。。。
完美!

猜你喜欢

转载自blog.csdn.net/qq_34664239/article/details/102523578