クエリ文字列を変更するために、(ユーザーが何らかのアクションを実行したときに) jQM ページの URL を動的に変更したいと考えています。の使用history.pushState
は正常に機能しますが、jQM が URL にハッシュを追加しようとすると、たとえばダイアログに移動するときに、期待どおりに機能しません: URL は元の値に戻り、jQM はそれにハッシュを追加します (ダイアログを閉じようとするとエラーが発生することに注意してください)。
jQuery Mobile のドキュメントを調べたところ、ページの元の URL が要素のdata-url
属性に格納されていることがわかりました。data-role="page"
そのため、URL を変更する必要があるときはいつでもそれを変更しようとしましたが、ダイアログを開くと元の URL に戻ります。
例については、この JS Bin を確認してください: http://jsbin.com/egunif/5/edit
[ダイアログ] ボタンをクリックすると、URL が (data-url 属性と共に) 変更され、ダイアログが開きます。egunif/hashtest
jQM がURL を に変更する前に、URL が一時的に に変更されていることがわかりますegunif/5#&ui-state=dialog
。
元の URL は別の場所に保存されているようですが、問題はどこにあるのでしょうか。また、jQM がハッシュを変更したときに競合しないように、この URL を変更することは可能ですか?
ありがとう!