頁面跳轉,子頁面調用父頁面的方法

需求是,一個頁面(父頁面),跳轉一個頁面(子頁面),操作點擊事件,關閉子頁面,刷新父頁面的數據。

遇到的關鍵點

  • 子頁面中調用父頁面的方法,這個方法必須是全局,不能是局部

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();
    }
}

然後,直接在子頁面的點擊事件中調用。。。
完美!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章