ホームページ > ウェブフロントエンド > フロントエンドQ&A > JavaScript がネストされたページを監視する方法

JavaScript がネストされたページを監視する方法

PHPz
リリース: 2023-05-21 12:00:07
オリジナル
1158 人が閲覧しました

Web アプリケーションの開発に伴い、iframe をネストして別の Web サイトのコンテンツを表示するなど、ネストされたページを使用してデータを表示する Web サイトが増えています。この場合、JavaScript でネストされたページからのイベントを効果的にリッスンするにはどうすればよいでしょうか?

まず、いくつかの基本概念を理解する必要があります。 Web 開発では、Web サイトに複数のページを含めることができ、各ページに複数の iframe (インライン フレーム) を含めることができます。 JavaScript でネストされたページのイベントをリッスンしたい場合は、まずネストされたページが配置されている iframe 要素を取得する必要があります。

iframe 要素を取得するにはさまざまな方法がありますが、最も一般的なのは、ドキュメント オブジェクトの getElementById() メソッドまたは querySelector() メソッドを使用することです。たとえば、ID が「myframe」の iframe 要素を取得したい場合は、次のコードを使用できます。

var iframe = document.getElementById("myframe");
ログイン後にコピー

iframe 要素を取得した後、そのイベントを監視できます。以下に、いくつかの一般的な iframe イベントと対応する監視方法を示します。

  1. 読み込み完了イベント

iframe 内のページが読み込まれると、load イベントがトリガーされます。次のコードを使用して、このイベントをリッスンできます。

iframe.onload = function() {
  // iframe中的页面已经加载完成
};
ログイン後にコピー
  1. ページ読み込み失敗イベント

iframe 内のページの読み込みに失敗すると、エラー イベントが発生します。引き金になった。次のコードを使用して、このイベントをリッスンできます。

iframe.onerror = function() {
  // iframe中的页面加载失败
};
ログイン後にコピー
  1. コンテンツ サイズ変更イベント

iframe 内のコンテンツ サイズが変更される場合があります。新しいページがページに追加されました。コンテンツまたは一部の要素は削除されました。次のコードを使用して、このイベントをリッスンできます。

iframe.contentWindow.addEventListener("resize", function() {
  // iframe中的内容大小已经发生变化
});
ログイン後にコピー

iframe 内のコンテンツは別の Web サイト上のページであるため、contentWindow オブジェクトを使用して、Web サイト内の DOM 要素を取得する必要があることに注意してください。ページ。さらに、サイズ変更イベントの実装方法はブラウザごとに異なるため、このイベントをリッスンするには addEventListener() メソッドを使用するのが最善です。

  1. ページ スクロール イベント

iframe 内のページがスクロールをサポートしている場合は、次のコードを使用してスクロール イベントをリッスンできます:

iframe.contentWindow.addEventListener("scroll", function() {
  // iframe中的页面已经发生滚动
});
ログイン後にコピー

サイズ変更イベントと同様に、contentWindow オブジェクトを使用してページ内の DOM 要素を取得する必要もあります。

上記のイベントに加えて、監視できるイベントは他にも多数あります。特定のニーズに応じて、対応するイベント タイプを選択する必要があります。

一般に、上記の方法を通じて、ネストされたページ内のさまざまなイベントを効果的に監視できます。もちろん、監視する前に、閲覧している Web サイトが iframe 内のスクリプトを禁止する iframe サンドボックス テクノロジを使用していないことを確認する必要があります。また、同一オリジンポリシーの制限も考慮する必要があり、iframe内のページが親ページと同じドメイン名に属さない場合、そのコンテンツに直接アクセスすることはできません。

以上がJavaScript がネストされたページを監視する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート