Чтобы достичь этого, вы должны прикрепить обработчик события load
к iframe, а также не устанавливать источник iframe в самой разметке, потому что перед подключением обработчика события загрузки событие может быть запущено. 1002 *
Рабочая демо . Вместо загрузки текста вы можете заменить его на изображение по вашему выбору в качестве фона или тега img
.
Разметка
<div id="dialog-box">
<iframe id="Iframe" src="javascript:void(0);" ></iframe>
</div>
<div class="loading">
<br /><br />
<div>Loading...</div>
</div>
Js
function showLoading(){
var $loading = $(".loading");
var windowH = $(window).height();
var windowW = $(window).width();
$loading.css({
position:"fixed",
left: ((windowW - $loading.outerWidth())/2 + $(document).scrollLeft()),
top: ((windowH - $loading.outerHeight())/2 + $(document).scrollTop())
}).show();
}
function hideLoading(){
$(".loading").hide();
}
$(function(){
showLoading();
$("#Iframe").load(function(){
hideLoading();
}).attr("src", "http:\\blah.com");
});
Css
.loading{
width:200px;
height:100px;
background:#ccc;
font-weight:bold;
}
.loading div{
margin: auto 0px;
text-align:center;
vertical-align:middle;
}