在jQuery UI模式对话框中显示iframe的加载动画

时间:2012-12-07 06:37:14

标签: javascript jquery jquery-ui iframe

UI专家,  我试图在jquery模式对话框中的iframe中加载一个缓慢的网站,但我遇到了麻烦。这是我的用例:

  1. 用一个“loading ...”gif
  2. 打开一个jquery对话框
  3. 在后台加载其他网址
  4. 加载后,用网址
  5. 替换gif

    我可以直接使用以下代码打开网址:

        var popup = $('<div id="popup123" class="dialog"></div>').prependTo('body');
        popup.prepend('<iframe style="display:none" class="dialogIFrame"></iframe>');
        $('.dialogIFrame').attr("src", 'http://myslowsite');
        $('.dialogIFrame').show();
        popup.dialog({
            modal: true,
            title: 'Site',
            width: 1000,
            height: 500,
        });
    

    所以我的问题是 - 如何在混音中添加“loading ...”gif?应该可以 - 但我似乎无法搞清楚!

    提前致谢!

2 个答案:

答案 0 :(得分:7)

以下是创建iframe,将其定位到网站并在完成加载时执行回调的示例:http://jsfiddle.net/74nhr/109/

$(document).ready(function() {
    var status = $('#status');
    var iframe = $('iframe');

    status.val('Loading...'); // show wait

    iframe.on('load', function() {
        status.val('Done!');  // remove wait, done!
    });

    setTimeout(function() {
        iframe.attr('src', 'http://www.archive.org');
    },
    1000);
});
​

答案 1 :(得分:6)

看到这个。希望它有所帮助.. http://jsfiddle.net/CEJhb/1/

var popup = $('<div id="popup123" class="dialog"><img id="load" src="http://jsfiddle.net/img/logo.png" alt="loading..."/></div>').prependTo('body');

popup.prepend('<iframe style="display:none" class="dialogIFrame"></iframe>');
var $iFrame = $('iframe');

$iFrame.load(function() {
$('.dialogIFrame').show();
$('#load').hide();
});

$('.dialogIFrame').attr("src", 'http://www.google.com');

popup.dialog({
modal: true,
title: 'Site',
width: 1000,
height: 500
});​