在我不能相信没有人注意到此之前或者我必须要丢失某些类别的情况下提交这个:
看来如果你window.history.pushState在iOS上做一个简单的操作,位置栏就不会更新,除非它是对用户手势的响应.状态本身确实被推动(正如您可以通过按下后退按钮按钮看到的那样).
这是我可以想出的最小的测试用例重新创建问题:
http://thelink.is/history-api-ios-bug
在支持History API的桌面浏览器上,您应该会看到位置栏中的URL每秒更改为/ 0,/ 1等.在iOS上 - 使用iPhone(运行iOS 4.3)和iPad(运行iOS 4.3.3)进行测试 - 位置栏不会更新,但是按下后退按钮会显示正确的先前位置(自测试案例开始就是404)没有后端逻辑来处理这些URL).
思考?解决方法?一个哭泣和拥抱的肩膀?
更新:此问题已在iOS 5中修复.