jQuery等待iframe加载完成

5

你好,我使用一个按钮来改变iframe的src,当我点击它时,可以这样做:

$("#iframe").attr('src',"someurl");

有没有办法在加载新的URL之前显示“请稍候”消息或gif加载器?

someurl 的内容是否在您的控制范围内? - techfoobar
1
可能是Javascript回调当IFRAME完成加载?的重复问题。 - Christofer Eliasson
是的,它是一个本地的 PHP 文件。 - man_or_astroman
2个回答

5
为什么不使用jQuery.load函数,它具有用于管理显示文本的回调函数:
HTML
<button id="myLoadButton">Load</button>
<div id="Myiframe"></div>

JS

$('#myLoadButton').click(function(){
   $(this).text('Please wait...');
   $('#Myiframe').load('ajax/test.html', function(){
      $('#myLoadButton').text('Content loaded!');
   });
})

2
我本来想要投反对票,但也许我有所遗漏。即使跨域政策不是问题,如果你加载google.com,那会发生什么?所有样式和脚本都会覆盖你自己的吧? - Neo

1

src属性只是为框架设置URL,但load函数由jQuery引擎维护。因此,ajax全局函数等待load()函数完成。

 $("#iframe").attr('src',"someurl");

首先确保ajax事件是异步的,并使用以下代码:

 $('#iframe').load('someurl');

这是显示“请稍候”消息或gif加载程序的唯一方法,直到新URL加载完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接