AngularJS应用程序未在Safari(iOS 5.1.1)后退按钮上加载。有什么建议?

时间:2013-07-10 00:26:41

标签: angularjs safari

我在iOS 5.1.1和Angular上遇到了一个问题,我在做分页结果。在我决定离开托管应用程序的页面后,使用浏览器的历史记录返回按钮返回页面。

应用程序未初始化,因此我再次滚动,不会触发分页功能。

由于5.1.1没有提供Web检查器,因此我不得不依赖console.log来打印我想要查看它正在执行的事件。在初始加载时,我看到一切正常,但是当我通过后退按钮返回时,没有任何东西发射。

我解决此问题的常用方法无效。以下是我尝试过的事情:

  • 使用Angular app的手动引导
  • 使网页不支持缓存,并在网页呈现后立即过期。

这些都没有帮助,这就是为什么我在这里要求一些建议。不幸的是,通过Fiddle或托管的HTML文件进行复制并不是一件容易的事情,因此我无法提供。希望你们中的一些人之前可能已经经历过这种情况。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

答案已经很晚了,我希望你已经找到了一个解决方案,但它可能对其他人有用。

不幸的是我无法回答为什么应用程序没有初始化(由于缺少代码)但我可以给你一些工具/提示来简化调试(假设你有iOS模拟器)。

可以通过以下方式进行移动游猎:

  • 使用weinre并获取网络功能
  • 或在Mobile Safari中启用远程调试,请参阅here

答案 1 :(得分:0)

是的,与iOS 7相同的问题。它必须在运行任何javascript之前发送DOM结构。有点无意义......

答案 2 :(得分:0)

由于问题出在移动版Safari上,并且由于它支持popstate事件,因此您可以使用此事件来检测用户何时返回与$ location.path()的组合,例如:

$(window).bind("popstate", function () {        
    alert(location.pathname + $location.path());        
});