0

重複の可能性:
javascript を使用してアンロード イベントのプロンプトを削除する方法

onbeforeunload と onunload を実行する Javascript に取り組んでいますが、スクリプトは一般的に正常に動作しますが、IE と Firefox では、終了するかどうかを尋ねるプロンプトが表示され、選択した選択に関係なく、残りのコードが実行されます。まだ。Chrome と Safari では、この問題は発生しません。IE と Firefox がそれを行う理由を理解し、プロンプト ボックスを一緒に表示しないようにしようとしています。これが役立つ場合のコードは次のとおりです。

var leave_message = document.getElementById("kioskform:broswerCloseSubmit");
var leave_safari = document.getElementById("kioskform:broswerCloseSafari");

function goodbye(e) {
    if (!validNavigation) {
        if (dont_confirm_leave!==1) {
            leave_message.click();
            if(!e) e = window.event;

            //e.cancelBubble is supported by IE - this will kill the bubbling process.
            e.cancelBubble = true;
            e.returnValue = leave_message.click();

            //e.stopPropagation works in Firefox.
            if (e.stopPropagation) {
                e.stopPropagation();
                e.preventDefault();
            }

            //return works for Chrome and Safari
            //canceling this makes IE work well but not make Safari work at all.
            leave_safari.click();
        }
    }
}

window.onbeforeunload=goodbye;
window.onunload=leave; 

function leave() {
    document.getElementById('kioskform:broswerCloseSubmit').click();           
}
4

0 に答える 0