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();

最初のインデックスビューは正常にロードされ、必要に応じて表示されます

これで、リンクの1つをクリックして、Open 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 に答える