Javascript 刷新父窗口后弹出窗口的处理程序

Javascript 刷新父窗口后弹出窗口的处理程序,javascript,window,handler,popupwindow,Javascript,Window,Handler,Popupwindow,我有一个Java项目,用Java脚本来管理站点。我有一个打开帮助对话框弹出窗口的功能。当我刷新主页时,一个弹出窗口不会关闭,它仍然打开。我有一个保护,你可以打开两个窗口的帮助,但它的工作与处理程序(helpWnd),在它失去刷新主页 对不起我的英语;) 在很多情况下,打开窗户被认为是有害的,你可能已经发现了 一个更好的替代方法是将模态对话框与javascript结合使用,它本质上是同一页面中的分层对话框。我不是Dojo专家,但我很快就在Google上找到了文档(http://dojotoolki

我有一个Java项目,用Java脚本来管理站点。我有一个打开帮助对话框弹出窗口的功能。当我刷新主页时,一个弹出窗口不会关闭,它仍然打开。我有一个保护,你可以打开两个窗口的帮助,但它的工作与处理程序(helpWnd),在它失去刷新主页

对不起我的英语;)


在很多情况下,打开窗户被认为是有害的,你可能已经发现了

一个更好的替代方法是将模态对话框与javascript结合使用,它本质上是同一页面中的分层对话框。我不是Dojo专家,但我很快就在Google上找到了文档(http://dojotoolkit.org/reference-guide/1.7/dijit/Dialog.html)

不管怎么说,如果你仍然想打开窗户,如果你能确保它得到关注,你可能会有更好的行为。请看这里:

var helpWnd = null;
// Open help dialog with url from recived helpId
function openHelpDialog(helpId, height, width, title) {
    var url;
    if(helpId == "contact") {
        url = "help/contact.html";
    } else {
        var regularExpression = /[a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-9]/;
        if(helpWnd!=null) {
            helpWnd.close();
        }
        url = "help/index.html?"+helpId.toLowerCase()+".html";
        if(!regularExpression.test(helpId)) {
            url = "help/index.html";
        }
    }
    helpWnd = window.open(url, title, 'width=1000, height=600, menubar=no, toolbar=no, location=no, scrollbars=yes, resizable=yes, status=no');
}

//this refresh main page
function changeRole(roleName,redirectUrl) {
    dojo.xhrPost({
        content: {
            role: roleName 
        },
        handleAs: "json",
        sync: true,
        url: 'someUrl.npi',
        load: function (response) {
            dojo.cookie(response.cookieHash, response.role, {expires : response.cookieExpiryTime});
            document.location.href = redirectUrl;
        }
    });
}