0

Webページを閉じようとしているときにユーザーに警告する簡単な関数を作成しています。私はwindow.onbeforeonload関数を使用していますがjavascriptです。私がしているのは、window.onbeforeonload関数が悪かったため、変数をfalseに設定したことです。

function funky() {
var submitFormOkay = false;
window.onbeforeunload = function () {
    if (submitFormOkay == false) {
        return "You are about to leave this order form. You will lose any information...";
    }
}
}

私のhtmlでは、これが私がしていることです

<input type="submit" id="submit_button" onclick="submitFormOkay = true;">

ただし、私の質問は、関数funky()を起動する方法が必要なことです。onclickを使用できることはわかっていますが、これを実行すると、submitFormOkayの値が設定されます。

どんな助けでもいただければ幸いです。

4

2 に答える 2

2

submitFormOkay関数のパラメーターを作成し、指定されたパラメーターでfunky呼び出すだけではどうでしょうか。

<input type="submit" id="submit_button" onclick="funky(true);">

そしてJSファイルで:

function funky(submitFormOkay) {
     window.onbeforeunload = function () {
        if (submitFormOkay == false) {
           return "You are about to leave this order form. You will lose any information...";
        }
    }
}
于 2012-08-13T19:05:02.850 に答える
0

HTMLを変更せずに、代わりにこれを行います。

window.onbeforeunload = (function(w) {
    w.submitFormOkay = false;
    return function() {
        if (!w.submitFormOkay) {
            return "You are about to leave this order form. You will lose any information...";
        }
    };
})(window);

ngmiceliのソリューションの問題はwindow.onbeforeunload、ユーザーがページを離れるまで、コールバックが定義されないことです。

于 2012-08-13T19:16:42.937 に答える