2


0

iframe .loadイベントが発生しない

次のようなiframeをリロードしようとしています。

var frameObject = $('#myFrame');
var frameAsInDom = frameObject[0].contentWindow;
var currenctLocation = frameAsInDom.location;
frameObject.attr('src', 'about:blank');
frameObject.contents().remove(); // This was a desperate statement!!
frameObject.attr('src', currentLocation).load(function(){
   alert('iframe reloaded');
});

問題は、iframeの.loadイベントがまったくトリガーされないことです。 ロードコールバック内で*アラート*を取得していません。

2 Answer


5


イベントのバインディングとトリガーを混合している、

このコードを参照してください:http://jsfiddle.net/BvQuk/1/

  • HTML *


JS

$(document).ready(function() {
    var iFrame = $('#myFrame');

    iFrame.bind('load', function() { //binds the event
        alert('iFrame Reloaded');
    });

    $('#uxButton').click(function() {
        alert('onButtonClick OR onBeforeReload');
        var newSrc = iFrame.attr('src') + '?c=' + Math.random(); //force new URL
        iFrame.attr('src', newSrc); //changing the src triggers the load event
    });

});

お役に立てば幸いです。


1


ああ! javascriptエラー.. 「currentLocation」は未定義です。 `var currenctLocation`のタイプミス

http://jsfiddle.net/4tRWq/ [ワーキングデモ]