Javascript历史记录功能不适用于iOS 6主屏幕上提供的网页

时间:2012-10-26 18:20:47

标签: javascript ios6 homescreen

我已经看到一些关于iOS 6的新行为的其他帖子,其中网站已保存到主屏幕/从主屏幕启动。在iOS 5(及更早版本)上,我们可以使用Javascript History功能进行应用程序后退按钮。但是,在iOS 6中,如果您只访问过网站中的一个页面,则可以使用它。但是,如果您访问过多个页面,则会引发页面未找到错误。它在Safari中工作正常(不是从主屏幕),如果我删除<meta name="apple-mobile-web-app-capable" content="yes" />标签,它可以正常工作。但后来我得到了我试图避免的丑陋的浏览器chrome。

我看过有关iOS 6更改不再与Safari共享数据的类似帖子,但我希望有人遇到类似的问题,在iOS中存储/使用的主屏幕版本的应用程序的历史信息6。

我们正在使用此电话:<a href="javascript:history.back();" class="back"></a>

同样,它在Safari中运行良好,在所有旧操作系统中都很好。但是当用户点击的页面超过两页时,它在主屏幕上的iOS 6上失败了。

3 个答案:

答案 0 :(得分:2)

我的理解是,如果您添加 apple-mobile-web-app-capable 标记,它会将添加到主屏幕的页面缓存。

启动书签后的任何后续请求都会导致Safari浏览器启动网址(添加了丑陋的Chrome)。

你可以做一些基本的错误检查 - 如果有任何历史记录:

function GoBack() {
   if(history.length) {
       history.back();
       return false;
   }
   return true; //follow the regular link
}

你真的应该给你的网址一个适当的href值:

<a href="http://your_standard_url" class="back" onClick="GoBack()"></a>

答案 1 :(得分:1)

试过了吗

onclick="history.go(-1)"
  • 这个简单的命令应该有效。

答案 2 :(得分:0)

尝试其中一个

  
    

window.history.pushState

  
     

http://thelink.is/history-api-ios-bug

OR

  

window.history.pushState(数据,标题,&#39; a / new / url#&#39;);

OR

  

window.history.pushState(数据,标题,&#39; a / new / url&#39;);

     

window.location.hash =&#39; new&#39;;