1

jQuery Mobile を使用する PhoneGap アプリケーションを作成していますが、現在、$.getScript(); を使用して JavaScript で動的にロードする際に問題が発生しています。

以下は失敗します:

$(document).on('pageinit','#index',function() {
               $.getScript("/assets/js/alert.js",function(data, textStatus, jqxhr){});
});

ただし... HTTP経由で呼び出すと..動作します:

$(document).on('pageinit','#index',function() {
               $.getScript("http://testdomain.com/assets/js/alert.js",function(data, textStatus, jqxhr){});
});

Google グループの次のスレッドは関連していますが、私にとっては無益であることが判明しました: https://groups.google.com/forum/?fromgroups#!topic/phonegap/LkIN97HYX5k

理想的には、jQuery モバイルで新しいページが読み込まれたときに、特定のスクリプト ファイルを遅延ロードする必要があります。おなじみの新しいページは、オンザフライで生成されるため、データのヘッダーやフッターは必要ありません。

http://jquerymobile.com/test/docs/pages/page-scripting.html

jQuery Mobile サイトを構築する際の最も簡単な方法は、すべてのページのヘッドで同じスタイルシートとスクリプトのセットを参照することです。特定のページに特定のスクリプトまたはスタイルをロードする必要がある場合は、ロジックを pageinit イベント (詳細は後述) にバインドして、特定のページが作成されたときに必要なコードを実行することをお勧めします (これは、id 属性または数値によって決定できます)。他の方法の)。このアプローチに従うと、ページが直接読み込まれた場合、または Ajax を介して取り込まれて表示された場合に、コードが確実に実行されます。

私が疑問に思っているのは、まず、他の誰かがこのように jQuery の getScript で問題を経験したことがあるかどうか、または回避策があるかどうかです。次に、PhoneGap と jQuery モバイルの範囲内で動作する動的 JavaScript のローダーに関する提案です。読んでみると、Require.js は正しい方向に進んでいるように見えますが、PhoneGap と完全に互換性があるわけではありません。

私が理にかなっていることを願っています。

4

0 に答える 0