8

$_POSTデータを失うことなくページをリロードするボタンを作成したいと考えています$_SESSION
Web で、次のコードを見つけました。

onclick="document.location.reload();"

そして、ここに私のボタンのコードがあります:

<a class="button" href="" style="font-size: 0.7em; padding: 5px 10px;" onclick="document.location.reload();">Recharger la page</a>

しかし、ボタンをクリックすると、$_POSTデータと$_SESSION.

キーボード コマンドCtrl+R (Chrome) またはF5 (Firefox、IE9) を試してみると、フォームを再度送信しようとしていることを通知するアラートがブラウザーに表示されます。私が受け入れれば、それはうまくいきます。

この種のブラウザの更新を JavaScript コマンドで再現するにはどうすればよいですか? または、ボタンのコードが間違っていますか?

ご助力ありがとうございます。

4

3 に答える 3

9

使ってみて

location.reload(true);

これにより、DOM を再構築するだけでなく、サーバーからリソースを再取得する「ハード」リフレッシュが実行されます。

詳細については、Mozilla Developer wiki を参照してください。

どうやら、はスクリプトlocation.reload()の と同等ですが、 /は を使用してシミュレートできます。F5Ctrl+F5Ctrl+Rlocation.reload(true)

また、ThiefMaster が述べたように、ステートメント;return falseの最後に抜けているか、ブラウザがリンクをたどらないように*onclickに設定する必要があります。hrefjavascript:void 0

*または返す JavaScript の他の部分undefined

于 2012-06-02T09:29:06.933 に答える
2

これは、投稿先と同じ場所にいる限り、どのような場合でも発生するはずです。ただし、何をしようとしているのかを正確に回避するために、POST 要求の後にリダイレクトするのが一般的です。

コードが機能しない理由はhref=""、現在の URL への GET 要求が発生するためです。href="#"「新しい」ページが読み込まれないようにするかreturn false;、コードの最後に追加するために使用しonclick="..."ます。

于 2012-06-02T09:24:45.767 に答える
0

Ctrl + Rページが更新され、キャッシュクリアされます。また、Internet Explorer を使用していると思いますか? 他の一部のブラウザは、 を押すとこのように動作しますがCtrl + F5Ctrl + R

ソース:
https://superuser.com/questions/205279/ctrlf5-vs-ctrlr-on-browsers
Ctrl-R でのブラウザーの問題

于 2012-06-02T09:28:04.920 に答える