別のページotherPage.htmlを表示している html ページmyPage.htmlに iFrame があります。 otherPage.htmlは多くの要素を持つ複雑なページです。iFrame に div を 1 つだけ表示したい。他のすべては非表示のままにする必要があります。これどうやってするの?
iFrame の代わりに、jQuery で .load() 関数を使用しようとしました。しかし、何らかの理由で、ページが読み込まれません。otherPage.htmlは IIS サーバーから提供され、ページは純粋な Javascript で構成されています。load() 関数を使用すると、何もロードされない理由がわかりません。
これを達成するにはどうすればよいですか?
更新: ここにいくつかの説明があります: myPage.html で .load() 関数を使用しようとしました。とにかく、いじってみたところ、次のように動作することがわかりました。次のjQueryステートメントはこれを行うようです:
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
今一つだけ問題があります。私が次のことをするとき:
- myPage.htmlを Firefox にロードします (iframe に otherPage.html もロードします)。
- 手動でfirebugを開いて入力します
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
他のすべてを隠しているようです。
しかし、私はそれを自動化したい。つまり、myPage.htmlをロードするときに、iFrame のコンテンツをロードする必要があります。iFrame のコンテンツが読み込まれたら、次のスクリプトを実行します。
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
これを機能させることはできません。これまでに次の2つのアプローチを試しました。
$(document).ready(function() {
$("#myFrame").ready(function () {
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
});
});
私も使ってみました
$("#myFrame").load(function () {
代わりは。ただし、どちらの場合も、スクリプトは他の要素を隠しません。スクリプトはコンソールで手動で使用すると機能するため、すべての要素がロードされる前にスクリプトが実行されていると想定しています。あなたの考えを教えてください。