javascript iframeのロード時に処理を実行する

javascript iframeのロード時に処理を実行する

javascriptで、iframeのロード時に処理を実行するサンプルコードを掲載してます。ブラウザはchromeを使用しています。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 101.0.4951.54

iframeのロード時に処理

iframeのロード時に処理を行うには、「addEventListener」を使用します。

document.querySelector("iframe").addEventListener( "load", function() {
    // 処理を記述
} );

実際に実行してます。

<iframe src="https://mebee.info"></iframe>

<script>

document.querySelector("iframe").addEventListener( "load", function() {
    console.log("ロードされました");
} );

</script>

実行結果

また、「onload」も使用可能です。
※関数はアロー関数を使用してます。

document.querySelector("iframe").onload = () =>{
    console.log("ロードされました");
};

サンプルコード

以下は、
「実行」ボタンをクリックした際に、「iframe」をロードした後にテキストを表示するサンプルコードとなります。

※cssには「tailwind」を使用して、アロー関数で関数は定義してます。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <title>mebeeサンプル</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="https://cdn.tailwindcss.com"></script>
</head>

<body>
  <div class="container mx-auto my-56 w-64 px-4">

    <div id="sample" class="flex flex-col justify-center">

      <h1 class="font-semibold text-sky-500 text-lg mr-auto">実行結果</h1>

      <p id="foo" class="font-semibold text-lg mr-auto"></p>

      <iframe id="ifr" src="https://mebee.info"></iframe>

    </div>

  </div>
</body>

<script>

  ifr.onload = () => {

    foo.innerHTML = "読み込み完了";    

  }

</script>

</html>

実行結果を確認すると、ロード後に処理が実行されていることが確認できます。