4

我在 iOS 5.1.1 和 Angular 上遇到了 Safari 的问题,我正在执行分页结果。在我决定离开托管应用程序的页面后,然后使用浏览器的历史返回按钮返回该页面。

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

由于 5.1.1 没有提供 Web 检查器,我不得不依靠 console.log 来打印我希望看到它正在执行的事件。在初始加载时,我看到一切正常,但是当我通过后退按钮返回时,没有任何反应。

我通常的解决方法不起作用。以下是我尝试过的事情:

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

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

提前感谢您的帮助。

4

3 回答 3

0

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

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

可以在移动 Safari 上进行调试:

  • 使用weinre并获取 web concole 的功能,
  • 或通过在 Mobile Safari 本身中启用远程调试,请参见此处
于 2013-09-06T20:18:19.583 回答
0

是的,iOS 7 也有同样的问题。它必须在运行任何 javascript 之前发送 DOM 结构。有点没意思...

于 2013-10-08T06:46:16.350 回答
0

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

$(window).bind("popstate", function () {        
    alert(location.pathname + $location.path());        
});
于 2014-05-16T21:19:51.607 回答