2017-09-07 21 views
0

バックエンドがiframeを含むjspページにHTMLを送信するケースがあります。以下に示すように、IFRAMEのSRCは、AJAX呼び出しを介して設定されています。下記のように設定されているHTMLはwindow.onload関数を含むスクリプトタグが含まれていますがajax呼び出しでiframeのsrc属性を設定するときにwindow.onloadを呼び出す

$(document).ready(function() { 
      $.ajax({ 
       type: "get", 
       url: "http://someurl/", 
       success: function(msg){ 
        console.log("Success" + msg);  
        $('#frameId').attr('src','data:text/html,'+ msg); 
       } 
      }); 
    }); 

<script> 
window.onload = function() { 
//some processing done here 
} 

私は理解しているように、 iframe srcがajax呼び出しによって設定されているのに対してiframeは既にロードされているので、このonloadは呼び出されません。この機能はどのように呼び出すことができますか?

答えて

0

onloadイベントはフレーム文書ではなく、それを含むIFRAMEによって発射されます。あなたが何もしなくても、枠のついたページ上のイベントはそれ自身で発生します。フレーム化されたページは、それがどのようにロードされたかを知らない、または気にしない。

は、ここで私はこれを確認するために使用したものです:

のindex.html:

<body> 
    <iframe id="x"></iframe> 
    <script> 
    // you can wrap this in a setTimeout too, just to confirm the ajax call doesn't interfere; same result 
    document.getElementById('x').setAttribute('src', 'test.html'); 
    </script> 
</body> 

はtest.htmlという:

<body onload="alert('frame onload event fired')"> 
    framed 
</body> 
関連する問題