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

时间:2012-04-18 09:06:36

标签: javascript window handler popupwindow

我有一个Java项目,用Java Script来管理站点。我有一个打开帮助对话框弹出窗口的功能。刷新主页时,弹出窗口不会关闭,它仍然打开。我有一个保护,你可以在帮助下打开2个窗口,但它正在使用处理程序(helpWnd),当它刷新主页时松动。

抱歉我的英文; )

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

1 个答案:

答案 0 :(得分:0)

在许多场合打开窗户被视为有害,因为您可能已经发现了自己。

更好的选择是使用带有javascript的模态对话框,这实际上是同一页面中的分层对话框。我不是Dojo专家,但我很快就找到了Google的文档(http://dojotoolkit.org/reference-guide/1.7/dijit/Dialog.html)

无论如何,如果你仍然想要打开窗户,如果你确保它集中注意力,你可能会获得更好的行为。看看这里:http://www.quirksmode.org/js/popup.html