2

を呼び出した後、戻るボタンの動作が異なりますが、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 です。

  1. 置換ボタンをクリック - URL が testpage.html#test2 に変わります
  2. 割り当てボタンをクリック - URL が testpge.html#test3 に変わります
  3. 戻るボタンをクリックして...

次に、さまざまなブラウザーがさまざまなことを行います。

  • 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 で得られるものと一致するように の動作を統一する方法はありますか?

4

0 に答える 0