13

我看到之前有人问过这个问题,但我没有看到任何解决方案:

所以我使用 Cordova 2.5 在 iOS 6.1.2 上构建一个 iPad 应用程序

我的 app.coffee:

jQuery ->
    class window.AppRouter extends Backbone.Router
        routes: {
            '': 'index',
            ':parent/:child/': 'childView',
            ':id/': 'detailView',
        },

        index: =>
            $("#navbar .title").text("Flight Centre's Choices")
            view = new fc.main.View
            view.render()

        childView: (parent, child) =>
            view = new fc.main.View(parent:parent, child:child)
            view.render()

        detailView: (id) =>
            view = new fc.main.Detail(id:id)
            view.render()

    window.app = new AppRouter();
    Backbone.history.start();

第一个索引视图加载成功并按原样显示

现在点击其中一个链接让我们说打开 childView,它无法加载页面:

2013-03-20 16:56:13.684 Flight[1158:907] Resetting plugins due to page load.
2013-03-20 16:56:13.689 Flight[1158:907] Resetting plugins due to page load.
2013-03-20 16:56:13.694 Flight[1158:907] Failed to load webpage with error: Frame load interrupted

用户点击的链接如下所示:

/#/foo/bar/

在我的 Mac 上的 Chrome 浏览器中一切正常。

我不知道这里发生了什么!

4

2 回答 2

35

该死的这么多时间,答案是如此愚蠢和简单。

而不是将 html 中的链接作为:

/#/foo/bar/

它应该只是

#/foo/bar/

这是有道理的,前导/页面将重新加载,这就是我收到该错误的原因。

希望它可以帮助某人

于 2013-03-21T08:28:49.627 回答
0

我可以通过使用 window.location.hash 来解决它

于 2017-01-14T08:50:28.130 回答