こんにちは、管理するアイテムの大きなテーブルがあります。使用するボタンをクリックすると
$.post("update_the_database.php", { mode: 'themode', username: username },
function(result){
window.location.href = window.location.href;
});
これ"update_the_database.php"
はバックグラウンドで実行され、終了するとページがリロードされます。トップページに戻りますが・・・
私はもう試した:
window.location.href = window.location.href + '#the_id';
ただし、すべてのブラウザー (IE、Firefox、Chrome、Safari) では、アドレス バーの URL が変更されますが、ページはリロードされません。
ここから:
window.location.href=window.location.href と window.location.reload() の違い
「window.location.href=window.location.href は、URL にアンカー (#) がある場合、ページをリロードしません。この場合、window.location.reload() を使用する必要があります。」
だから私は試しました:
window.location.reload(true);
ページをリロードし、Chrome と Safari では前の場所までスクロールしますが、IE と Firefox ではそうではありません...
URLで変更されたものがすべてハッシュである場合、ページを強制的にリロードする方法は?
アプローチ #2:
window.location.hash = "#" + newhash;
window.location.reload(true);
今ではFirefoxで動作します...
ところで、window.location.reload(true); を使用すると IEでは、次のようになります。
Windows Internet Explorer
To display the webpage again, the web browser needs to
resend the information you've previously submitted.
If you were making a purchase, you should click Cancel to
avoid a duplicate transaction. Otherwise, click Retry to display
the webpage again.
Retry Cancel
「再試行」を押す必要があります。そうしないと、「Web ページの有効期限が切れました」というエラー ページが表示されます。
現在行っているIEポップアップを回避するには:
window.location.hash = "#<?php echo $id;?>";
if (navigator.appName != 'Microsoft Internet Explorer') {
window.location.reload(true);
}
ハッシュをアドレスバーに入れるだけで、アドレスバーに移動してEnterキーを押してもページが更新されません。ハッシュを削除し、Enter キーを押してページをリロードする必要があります... (その後、一番上までスクロールします)