Javascript 在调用window.location.replace(…)后,是否统一back按钮的行为?

Javascript 在调用window.location.replace(…)后,是否统一back按钮的行为?,javascript,html,mobile,back-button,browser-history,Javascript,Html,Mobile,Back Button,Browser History,在调用window.location.replace(…)后,我得到了返回按钮的不同行为,但我需要找到一种方法,在所有浏览器(包括移动设备)中获得相同的行为 给定以下html(包含在testpage.html文件中): 代替 分配 最初的url是testpage.html 单击替换按钮-URL更改为testpage.html#test2 单击分配按钮-URL更改为testpge.html#test3 单击后退按钮 然后不同的浏览器会做不同的事情: 在Chrome(21)和Firefox(1

在调用
window.location.replace(…)
后,我得到了返回按钮的不同行为,但我需要找到一种方法,在所有浏览器(包括移动设备)中获得相同的行为

给定以下html(包含在testpage.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浏览器(姜饼和冰淇淋三明治)上,第一次单击“替换”按钮没有任何作用(行为不正确)。第二次单击assign按钮将url设置为testpage.html#test3,如预期的那样。“后退”按钮然后返回到testpage.html的url,没有散列片段,这与Safari和iOS相同,但在第一次单击按钮没有做任何事情的情况下,这似乎是正确的行为。问题是对
      replace(…)
      的调用不起作用


    这种行为的不同有什么原因吗?有没有办法统一的行为来匹配我在Chrome和Firefox上看到的内容。

    你还在寻找答案吗?有趣的问题和观察。History.js来营救吗?你还在寻找答案吗?有趣的问题和观察。History.js来营救我们吧?
    <html>
        <body>
            <button onclick="window.location.replace('testpage.html#test2');">Replace</button>
            <button onclick="window.location.assign('testpage.html#test3');">Assign</button>
        </body>
    </html>