Android是否支持window.location.replace或任何等效软件?

Android是否支持window.location.replace或任何等效软件?,android,mobile,browser,browser-history,window.location,Android,Mobile,Browser,Browser History,Window.location,Android浏览器似乎没有正确实现window.location.replace 在大多数浏览器中,调用window.location.replace会将当前URL替换为传递给它的URL 当用户导航到其他地方,然后单击“上一步”时,他们将返回到传递到window.location.replace的URL,而不是调用window.location.replace之前他们所在的URL Android浏览器似乎没有正确地实现这一点 在Android浏览器中,用户将被引导回原始URL,而不是传递到wi

Android浏览器似乎没有正确实现
window.location.replace

在大多数浏览器中,调用
window.location.replace
会将当前URL替换为传递给它的URL

当用户导航到其他地方,然后单击“上一步”时,他们将返回到传递到
window.location.replace
的URL,而不是调用
window.location.replace
之前他们所在的URL

Android浏览器似乎没有正确地实现这一点

在Android浏览器中,用户将被引导回原始URL,而不是传递到
window.location.replace的URL

你可以自己测试一下


那么,有没有其他方法可以在Android中重写历史?或者,对于Android用户来说,我将不得不在没有该功能的情况下生活吗?

要使其在所有/大多数移动平台上都能工作,请查看此

演示如何处理Android、iPad和iPhone的重定向

Android使用
document.location
,而iOS支持
window.location.replace

这样行吗

document.location.href = 'http://example.com/somePage.html';

您可以尝试在历史记录窗口上使用replaceState方法

      if (((navigator.userAgent.toLowerCase().indexOf('mozilla/5.0') > -1 && navigator.userAgent.toLowerCase().indexOf('android ') > -1 && navigator.userAgent.toLowerCase().indexOf('applewebkit') > -1) && !(navigator.userAgent.toLowerCase().indexOf('chrome') > -1))) {
          window.history.replaceState({}, document.title, base + fragment);
      } else {
          location.replace(base + fragment);
      }

我也遇到了同样的问题,最终得到了类似于chris suggestion的代码,但我更改了if语句,使用Modernizer的特性检测。 如果您不使用Modernizer,代码将如下所示:

if(!!(window.history && history.replaceState)){
   window.history.replaceState({}, document.title, base + fragment);
} else {
   location.replace(base + fragment);
}

除非您有特定的设备检测原因,否则最好使用功能检测,因为它基本上支持所有设备,甚至未来的设备。

请尝试文档。location@jonathanconway你得到答案了吗。在我的例子中,location.replace不会删除以前的URL。如果你得到答案,那么请建议。如果我只想更改URL,这将起作用,但如果我想将以前的URL保留在浏览器历史记录之外,这将不起作用。上面的解决方案会将以前的URL保留在历史记录中。因此,换句话说,如果以前的URL没有保留在历史记录中,Android不支持任何更改URL的方法?我不确定,请尝试类似的方法,看看这是否有助于您发送的链接解决问题。是的,它重定向用户并在历史记录中保留重定向URL。但是,最初的URL也保留在历史上。然而,我想彻底清除历史上的原始URL。看起来这在Android上是不可能的(我不理解“base”和“fragment”。你能更清楚地解释一下吗?我使用了Chris下面例子中的base+fragment。但它只是一个字符串,带有你想添加到历史记录中的url(相对或绝对)。