1

jQuery の load 関数を使用して、他の html ページを div にインポートするページがあります。

$("#divId").load(pageLocation);

インポートされた各ページには、その名前 (page1.html、page2.html など) に関連付けられた ID があり、div のページのコードにアクセスしてその変数を呼び出すことができることがわかっています。

私の問題は、親ページの変数と比較するために、現在インポートされているページで独自の Id を取得する必要があることですが、window.location.pathnameそれを使用すると、代わりに親ページの名前が返されます。

インポートされたすべてのページで id を手動で宣言することなく、インポートされたページの名前を取得する方法はありますか?

いいえ、pageLocation代わりに親ページで を使用して比較を行うことはできません。
場合によっては、ページをインポートする div が複数あることがありますが、それらすべてに独自のコードを同時に実行させることはできません。そのため、現在アクティブかどうかを確認するために、各ページが独自の ID を認識している必要があります。

4

2 に答える 2

2

そのようなページをロードすると、DOM は親 DOM の一部になります。ページ ファイル名の概念はなくなりました。div の代わりに iFrame を使用し、src を変更した場合は、それを操作する必要があります。そのページをロードする div に属性を追加して、そこに情報を保存できます。または、親のどの div が現在どのページをロードしているかを識別するいくつかのグローバル変数を保持することもできます。body タグの id 属性を使用して、その中にファイル名を保存することもできます。

実際には、視点を変えて、div に読み込むときに、親ページのコンテンツを追加 (または置換) しただけで、iFrame の場合のように別のページ内にページがネストされていないことを理解する必要があります。

于 2013-05-10T21:05:48.180 に答える
1

読み込んだページは、一度読み込まれたページではなく、現在のページの一部です。元のページに関する情報を保存したい場合は、コンテンツを挿入する要素の JavaScript 変数またはデータ属性に保存することをお勧めします。

于 2013-05-10T21:10:14.477 に答える