0

サイトを管理するための Java Script を使用した Java のプロジェクトがあります。ヘルプ ダイアログのポップアップ ウィンドウを開く機能がありました。メイン ページを更新すると、ポップアップ ウィンドウが閉じず、開いたままになります。ヘルプを使用して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;
        }
    });
}
4

1 に答える 1

0

あなたが自分自身を知っているかもしれないので、窓を開けることは多くの場面で有害であると考えられています。

より良い代替手段は、javascriptでモーダルダイアログを使用することです。これは、基本的に同じページの階層化されたダイアログです。私はDojoの専門家ではありませんが、Googleでドキュメントをすぐに見つけました(http://dojotoolkit.org/reference-guide/1.7/dijit/Dialog.html)

とにかく、それでもウィンドウを開きたい場合は、フォーカスが合っていることを確認すると、動作が改善される可能性があります。こちらをご覧ください:http ://www.quirksmode.org/js/popup.html

于 2012-04-18T09:31:47.160 に答える