ある .js から別の .js ファイルに文字列を渡すことは可能ですか? たとえば、main.html には javascript が含まれています。実行時に javascript ファイルをロードする別の HTML ファイルに main.html から文字列を渡す必要があります。これは可能ですか?
3 に答える
完全に新しいページ (page1.html) をロードしている場合、変数を 1 つの JS ファイルから別の JS ファイルに直接渡すことはできません (両方の html ページにまったく同じ JS ファイルをロードしていた場合も同様です)。
でも、ひもをクッキーにくっつけてみませんか?必要なブラウザによっては、localStorage/SessionStorage を選択することもできます。最後になりましたが、リクエスト URL (page1.html?mystring=foo) で変数を渡し、Javascript 経由でアクセスするオプションが常にあります。
次のページへのリンクの href を変更して、クエリ文字列を追加できます。そこから、JavaScript は使用されている URL を取得し、渡す値を解析して、必要な値で初期化することができます。
通常、これはwindow.locationを参照することで実行できますが、要素を追加して、新しいページへの URL をhttp://wwww.yourdomain.com/page2.html?query_parameter=your_desired_stringのようにすることもできます。私の経験では、クエリ文字列パラメーターと同じ名前の入力フィールドがあれば自動入力されます。そこから、2 ページ目の JavaScript は非表示の入力要素から値を取得して、あるページから次のページに取得する文字列を取得できます。
+ 記号を使用すると、問題が発生する可能性があります。一部のブラウザーでは、URL に遭遇したときに + をスペースとして解釈するのを見てきました。クエリ文字列で必要な文字列を送信する前に、 + をエスケープして実際の + を取得する必要があります。
値をCookieに入れ、その値を参照して、2番目のJavaScriptファイルの文字列を初期化します。