17

編集可能なテーブルに特定のレコードを表示しています。ユーザーがレコードの編集中にテーブルをリロードしようとすると、保存されていないデータについてレコードに警告するポップアップが表示されます。

function cancelProcess()
{
    if(noEditedRecords !=0)//number of edited records in the table
    {
        var processConfirmation = confirm("You've Edited "+ noEditedRecords +" Records. Are You sure to undo the Changes made?");

        if (processConfirmation ==true){
            window.onbeforeunload = null;
            window.location.reload();
        }
    }
}

[OK] をクリックしてページをリロードすると、Firefox は次のようにプロンプ​​トを出します。

このページを表示するには、Firefox は以前に実行されたアクション (検索や注文の確認など) を繰り返す情報を送信する必要があります。

また、Chrome で同じページを開くと、そのようなプロンプトは表示されません。

を設定してこれを回避しようとしましwindow.onbeforeunload = null;たが、それでもプロンプトウィンドウが表示されます。

また、Firefoxの構成を変更してみました:

browser.sessionstore.postdata

Mozilla サポート ページで提案されているように、0 を 1 に変更しました。

しかし、何も機能しませんでした..プロンプトを防ぐにはどうすればよいですか?

4

8 に答える 8

38

使用する

window.location=window.location;

それ以外の

location.reload();

私のために働いてください。

于 2013-08-19T18:58:26.377 に答える
2

私はこれを解決し、 POSTではなくGETのみとしてデータを送信しました。

それは私のすべてのニーズに合っているわけではありませんが、うまくいきます....

私もlocation.reload();を使用していました。

于 2014-12-04T12:06:20.367 に答える
2

Firefox 82 (mac) では、変更する適切なパラメーターを (幸運にも) 見つけました。

dom.confirm_repost.testing.always_accept を true に設定 します

確認要求ウィンドウが消えます。

于 2021-10-20T16:07:10.530 に答える
1
window.opener.location.href = window.opener.location;

私はここで決定を見つけました

(Firefox 32 および Chrome 38 で正常にテストされました。)

于 2013-05-24T07:40:58.763 に答える
0

このプロンプトを回避する方法は、ユーザーが POST 結果ページをリロードしようとする状況を作成しないことです。

于 2012-09-28T04:31:39.663 に答える