0

次の実行フローに従う単純な1ページのWebアプリがあります

Main -> AJAX Content -> Main

ユーザーはメイン画面から始めて、入力データを入力し、ボタンを押します。これにより、基本的にいくつかの異なるステップのコレクションであるAJAXコンテンツが順番に開始されます。すべての手順を完了すると、ユーザーはメイン画面に戻ります。

ユーザーが「AJAXコンテンツ」状態で戻るボタンを押したときに何が起こるかを処理したいと思います。これは私が欲しかった状態図です-

Main (Push Main) -> AJAX Content (Pop Main)->  Main

したがって、ユーザーがAJAX状態の場合、戻るボタンを押すと、ユーザーはメイン画面に戻ります。アクティビティを完了してメイン画面に戻った後、戻るボタンを押すと、ユーザーはサイトから離れます。

注:すべてのアイテムは1つのHTMLページです。「メイン」と「AJAXコンテンツ」という言葉を使用して、ユーザーに表示されるさまざまな画面を説明しました。

Really Simple History、PathJS、jQueryBBQを使用してこの機能を実装してみました。それらのどれも成功しませんでした。アイテムをナビゲーションスタックにプッシュしてポップし、ユーザーが戻るボタンを使用したときにそれらに反応する簡単な方法が必要です。

私は主にモバイルプラットフォーム向けに開発していますが、これらすべてを行うのは本当に簡単です。Webアプリでこれを行う方法がわかりません。コードのスニペットは高く評価されます。

4

1 に答える 1

2

履歴を手動でプッシュできますか? 次のようなもの:

window.history.pushState(stateObj, "Title", "URL");

また、ナビゲーションのためのいくつかのメソッドと、あなたが最も高く評価すべきものをサポートしています:

window.onpopstate = eventHandlerRef;

ここに非常に素晴らしい記事があります: https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

これですべて問題ありませんが、悲しいことにターゲット プラットフォームに多少依存します - pushState メソッドとイベントのサポートはあまり広くありません - http://caniuse.com/#feat=history - 両方のサイトが History.js にリンクしていますほぼカバーされたサポートを持つポリフィル。https://github.com/browserstate/history.jsから:

HTML5 ブラウザ

Firefox 4 以降 Chrome 8 以降 Opera 11.5 Safari 5.0 以降 Safari iOS 4.3 以降

HTML4 ブラウザ

IE 6、7、8、9 Firefox 3 Opera 10、11.0 Safari 4 Safari iOS 4.2、4.1、4.0、3.2

于 2012-12-03T10:49:51.820 に答える