jQuery Mobile を使用してモバイル Web アプリを作成しています。私はいくつかの非常に奇妙な問題に直面しています。
ページは標準タグで接続されています。リンクをクリックするたびに、アドレスバーの場所が変わり、新しいページにリダイレクトされますが、ページが何かをレンダリングするには、Cntrl + F5 を使用して明示的に更新するか、ブラウザーの更新ボタンをクリックする必要があります。FF11とChromeで試しました。これは既知の問題ですか?
ありがとう
jQuery Mobile を使用してモバイル Web アプリを作成しています。私はいくつかの非常に奇妙な問題に直面しています。
ページは標準タグで接続されています。リンクをクリックするたびに、アドレスバーの場所が変わり、新しいページにリダイレクトされますが、ページが何かをレンダリングするには、Cntrl + F5 を使用して明示的に更新するか、ブラウザーの更新ボタンをクリックする必要があります。FF11とChromeで試しました。これは既知の問題ですか?
ありがとう
ページの準備/読み込みイベントが発生することを期待していたので、あなたが経験していることを正確に知っていると思います。これを解決するには、次のようないくつかの方法があります。
まず、ターゲット ページへのリンクのソース ページに次の句を追加するだけです。
rel = "external"
これにより、ターゲット ページが更新され、実行したい JavaScript コードがあると思われるページ ロード イベントが発生します。ただし、ページにこの動作をさせたくない場合があるため...
別のオプションは、ターゲット ページがアクティブ (または「ライブ」) になったときにトリガーされるスクリプトをソース ページに追加することです。
$( '#YourTargetPageName' ).live( 'pageinit', function(event){
alert( 'Hello from the TargetPage' );
$('#SomeInputField').val('Changed text in the target page');
});
上記のコード例では、ターゲット ページにリンクすると、ポップアップ アラートが表示され、選択した入力フィールドのテキストが変更されます。
最後に、すべてのページの開始時に同じコードを実行する場合は、次のスクリプトを追加します。
$(document).delegate('.ui-page', 'pageshow', function () {
alert( 'Hello from the beginning of every page' );
});
JQM のドキュメントで調べることができる他のオプションがたくさんあります (公平を期すために、私は表面をなぞっただけなので、いくつかはあなたの目的によりうまくいくかもしれません):