5

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

  1. 打开一个 jquery 对话框,带有一个“正在加载...” gif
  2. 在后台加载不同的 URL
  3. 加载后,将 gif 替换为 URL

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

    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,
    });

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

提前致谢!

4

2 回答 2

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);
});
​
于 2012-12-07T07:00:28.253 回答
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
});​
于 2012-12-07T07:29:26.873 回答