2011-12-19 16 views
4

jQuery Mobileで実際に問題が発生していますが、修正しようとしましたが失敗しました:-( ナビゲーションを使用してトラフをブラウズしてリンクをクリックするとこれはサイトに関連していて、いくつかの機能を実行するための.jsファイルを持っています.jsファイルは失われています。私がfirebugを見ると、指定した "get-marker-id.js"私がページをリフレッシュすると、.jsファイルが表示され、すべて機能が見つかって完全に機能しています。jQueryモバイルページでJavaScriptファイルが失われる

回避策として、ナビゲーションのタグにrel=external属性は、サイトが完全にロードされ、ajaxコールからロードされないため、この問題を解決します。

ここで、より良い回避策で問題を解決できるかどうかを知りたいのですが?私は"rel=external"を使用している場合、私は私のホームスクリーンにページを保存した場合、モバイルSafariは、新しいタブを開き、これは私の顧客は、(=たくないものですので、あなたならば。私は

答えて

3

、jqueryの携帯からsingle page templateは、取り残されている情報のキービットがあります。グローバルに使用できる関数と変数を持ち、フレームワークのデフォルトを変更できるようにするには、jquery.jsとjquerymobile.jsの間にカスタムスクリプトを追加する必要があります(global configurations page)。

<head> 
    ... 
    <script src="jquery.js"></script> 
    <script src="custom-scripting.js"></script> 
    <script src="jquery-mobile.js"></script> 
    ... 
</head> 

あなたは、AJAXベースのナビゲーションを内蔵した次のページへ行くと、カスタムscripting.jsですべてがまだあなたに利用できるようになり、さらには彼らが来てページを操作するために使用することができますで。

場合は、しかし、あなたはあなたの<div data-role="page">あなただけの長い間、そのページが所定の位置にあるように実行するためにアクセスする必要があります内のスクリプトを配置します。別のページに移動すると、最初のページがDOMから削除され、スクリプトが削除されます。したがって、すべてのページでスクリプトを呼び出したり、custom-script.jsに入れる必要があります。モバイルでのHTTP要求が減速の大部分を引き起こす原因であるため、グローバルスクリプトを使用する方がはるかに優れた選択肢になります。

+0

1をサポートしている)の質問は、サイトを示唆して使用して ''のrel =「外部」作品ではないと述べています単一ページテンプレートではなく複数のリンクされたHTMLドキュメント。 2)あなたが 'mobileinit'イベントにバインドしている場合には、外部JSをあなたが提案しているマナーに入れるだけです(これはデフォルトの設定方法です。 3)あなたのJSを 'data-role ="ページの要素の中に置くと、それらはAJAX呼び出しに含まれますが、そのページがDOMから削除されてもJSは利用可能です。最後に、最良の解決策は、すべてのページに 'custom' JSファイルを含めることだと思います。 – Jasper

+0

右の単一ページのテンプレートは、リンクされたHTMLドキュメントとして機能し、ajaxされているスタンドアロンのページです。私は、あなたが言うように、rel =外部。複数ページのテンプレートは、1つのDOMに複数の「ページ」があり、その例がはっきりと示されていないテンプレートです。私たちはちょっとしたセマンティクスの問題があったと思っています。 – sgliser

+0

私はすべてのページに含まれているカスタムjsファイルに関する最後のコメントに同意します。そうしないと、ユーザーが数ページのページをリフレッシュした場合、ページが失われる可能性があります。私はオリジナルの投稿にそのページを呼び出す必要があります。ありがとうジャスパー。いつものように、あなたは男です。 – sgliser

2

:-)助けのために非常に感謝しています.jsファイルへのリンクは、ロードしているページのjquery-mobile "role-page"要素の外にあり、ajax経由でページを読み込むときには全く解析されません。 「ロールページ」要素内のリンクについてはわかりませんが、インラインスクリプトが解析されることはわかります。ページ要素内でスクリプトを移動してみてください。我々は単純なものから開始していることを前提とした場合

0

ここでは2つのことが分かりますが、モバイルアプリでは何が良いのか判断できません。

1)のindex.htmlのheadセクションにjqueryの& jquerymobileの間であなたのcustom.jsを置きます。

  • あなたが1つのより大きいの.jsが内側(pageshowの、pageinit ...)すべてのページのトリガーを持つファイルや、このファイルだけ度(少ないhttp要求)にロードされるだろうだろう。この方法では、

  • 問題がある:ページのどこかでアプリケーションの途中でブラウザの再読み込みボタンをクリックすると、custom.jsにあるajaxなどの動的なものが読み込まれない。結果:空のページ。 (あなたの単一のページjqmアプリ内のページへのブックマークの同じカウント)特定のカスタムコーディングページを含む

2) - 全てのJQMのページでシングルページテンプレート内のデータ・役割=ページのdivの内側。

  • 私は今トラフブラウザのボタンを再読み込みすると、コードが再読み込みされることを前提としていますが、そこにはページが大きくなります。

私の質問がある:1でのようなソリューションを持っている方)が、その後、再びページのリロード

関連する問題