我有以下代码,这些代码会将所有href点击都加载到iframe中。但是,某些页面的加载可能需要花费几秒钟的时间,因此我想显示一个加载图标,其中iframe元素显示为灰色,直到内容加载完毕,然后隐藏该加载元素。过去我曾经使用过ajaxStart和ajaxStop函数,这些函数效果很好,但是看到页面没有被Ajax调用,我认为这不会起作用。有人可以建议如何做到吗?
<iframe src="/dashboard" name="contentFrame" id="contentFrame"></iframe>
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(e) {
e.preventDefault();
$("#contentFrame").attr("src", $(this).attr("href"));
})
});
答案 0 :(得分:0)
在更改iframe src属性之前,您可以显示显示正在加载的图标,而不是ajaxStart:
$("a").click(function(e) {
e.preventDefault();
// show your icon here
$("#contentFrame").attr("src", $(this).attr("href"));
})
而且,可以使用load event代替ajaxStop:
$("#contentFrame").on('load', function(e) {
// remove your icon here
})