1

私はこの Iframe を持っています:

 <iframe src='http://jsbin.com/iyaVOSe/1' onload='aaa()' id='ifr'/>

ただし、関数が iframe の前に宣言されている場合にのみ、オンロードが機能します。

作業: ( http://jsbin.com/ObeQERE/3/edit )

<script>  
    window.aaa= function ()
    {
      alert('load');
       
    }
 </script>
 <iframe src='http://jsbin.com/iyaVOSe/1' onload='aaa()' id='ifr'/>

動作していません: (aaa未定義です) ( http://jsbin.com/ObeQERE/4/edit )

 <iframe src='http://jsbin.com/iyaVOSe/1' onload='aaa()' id='ifr'/>
<script>  
    window.aaa= function ()
    {
      alert('load');
       
    }
 </script>

これは、onload が発生するのに少し遅延があるため、かなり奇妙です。また、iframe を使用せずに onclick イベントを使用する場合は問題になりません。

入力作業例

 <input onclick='aaa()' />
      <script>  
        window.aaa= function ()
        {
          alert('load');
           
        }
       
        </script>
  
 

また、-iframe サンプルでは-:aaaは次のように翻訳されます:

ここに画像の説明を入力

それでもaaa、解析時に知る必要はありません。・ラッピング機能があるから。

注意 : iframe のロード イベントは、ページをロードするためのものであり、要素を作成するためのものではありません。

そのため、解析するとiframe、iframe の非同期的な読み込みが開始され、ブロックされずaaa、宣言されているスクリプト セクションにすぐに移動します。

何が欠けていますか(解決策ではなく、理由を探しています)。? onload または onclick を呼び出すと、どのような違いがありますか?

iframeonloadは解析時に関数を必要とするようです。(実行時ではなく、イベントが実際に発生したとき。)

4

2 に答える 2