JavaScript的历史记录功能不工作的网页从主屏幕上提供的iOS 6(Javascript hi

2019-08-02 00:34发布

我见过了解iOS 6与保存到网站/从主屏幕上推出了新的行为的一些其他职位。 在iOS 5(或更早),我们能够使用JavaScript历史记录功能为我们的应用程序内的后退按钮。 在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> <a href="javascript:history.back();" class="back"></a>

再次,它是从Safari浏览器工作正常,优良的一切旧的操作系统。 但它无法在iOS 6从主屏幕当有用户点击了超过两页。

Answer 1:

我的理解是,如果你加入苹果移动网络应用能力的标签-它缓存加书签到主屏幕页面。

一旦书签启动将导致Safari浏览器推出的URL的任何后续请求(丑陋的铬添加)。

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

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>


Answer 2:

你有没有试过

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


Answer 3:

试戴之一

window.history.pushState

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

要么

window.history.pushState(数据,标题, 'A /新/ URL#');

要么

window.history.pushState(数据,标题, 'A /新/ URL');

window.location.hash = '新';



文章来源: Javascript history function not working for web page served from homescreen on iOS 6