を呼び出した後、戻るボタンの動作が異なりますが、window.location.replace(...)
すべてのブラウザー (モバイルを含む) で同じ動作を得る方法を見つける必要があります。
次の html (ファイル testpage.html に含まれる) があるとします。
<html>
<body>
<button onclick="window.location.replace('testpage.html#test2');">Replace</button>
<button onclick="window.location.assign('testpage.html#test3');">Assign</button>
</body>
</html>
最初の URL は testpage.html です。
- 置換ボタンをクリック - URL が testpage.html#test2 に変わります
- 割り当てボタンをクリック - URL が testpge.html#test3 に変わります
- 戻るボタンをクリックして...
次に、さまざまなブラウザーがさまざまなことを行います。
Chrome (21) および Firefox (15) では、URL が testpage.html#test2 に戻り、それ以上戻るクリックができなくなります。これは私が期待するものであり、これがまさに私が望む動作です。
Safari (5) および iOS (5) では、URL は testpage.html (ハッシュ フラグメントなし) に戻り、#test2 を含む中間 URL を完全にスキップします。
IE (9) と WP7 では、URL は testpage.html の前にいたものに完全に戻ります。
Android ブラウザ (ジンジャーブレッドとアイスクリームのサンドイッチ) では、置換ボタンを最初にクリックしても何も起こりません (不正な動作)。割り当てボタンを 2 回クリックすると、URL が予想どおり testpage.html#test3 に設定されます。戻るボタンは、ハッシュ フラグメントなしで testpage.html に URL を返します。これは Safari や iOS と同じですが、最初のボタン クリックが何もしなかったという事実のコンテキストでは、これは正しい動作のように見えます。問題は、への呼び出しが
replace(...)
機能しないことです。
とにかく、動作が異なる理由はありますか? Chrome と Firefox で得られるものと一致するように の動作を統一する方法はありますか?