2011-07-26 15 views
0

背景;jQueryハッシュチェンジ#Summary issue

jQueryを使用するjavascriptアプリケーション、特にhashchange プラグイン(http://plugins.jquery.com/project/hashchange)があります。アプリケーションは であり、ブラウザのハッシュ値によって制御されます。つまり、ハッシュが変更されると、 アプリケーションが通知され、それに応じて状態が変更されます。

フォームを記入するためにアプリケーションが使用されます。したがって、ユーザーは フォームのすべてのページをステップし、最後にフォームを送信する前に は「要約」ページ、つまりすべてのフォームフィールドを含むページと、 の値を入力します。 #0、#1、#2、 などのように、フォームページを踏んで(実際のフォームのページ数に応じて)ハッシュが変化します。サマリー ページは#サマリーと呼ばれます。

これはほぼすべてのプラットフォームとブラウザで完全に機能します。しかし、Windows XP SP3でIE8で動作している の場合、問題が発生します。

URLのハッシュ部分が "#summary"に変更されると、 ハッシュ変更イベントが発生しないようです。

これはハンドラコードのブレークポイントで確認されています。フォームページ が正常にトリガーされた場合、要約ページでは何も起こりません。上記のように、他のすべての OSおよびブラウザの設定では、これは正常に動作します。

私は基本的に2つのアイデアを試していますが、どちらも 開発努力なしでは実行できません(これはプロジェクト上の不十分なリソースです)。

  1. もう1つのハッシュ変更プラグインをお試しください。ハッシュチェンジは、「履歴」 プラグインから取得されたようです。だから多分私はそれを試すことができます - または多分他の提案がありますか?

  2. 要約ページの名前を別のものに変更します。 #検証。

これらはどちらも少し難解なので、この投稿になります。ご意見やご提案は 大歓迎です。事前に

おかげで、 マッズ

答えて

1

最も簡単な方法は、単にページの名前を変更することができますが、私は2つの異なるプラグインを提案することができます名前を保つことを主張しなければなりように思えます。

最初にDavisJSにはhash routing extensionを使用して何度も何度もお勧めしました。

Ben CherryのSaner HTML5 History Appもあります。これはわずかに軽量のライブラリであり、davisのようなクライアント側ルーティングフレームワーク全体ではありません。