如何在加载第三方iframe时删除加载gif

时间:2016-01-05 08:46:29

标签: javascript jquery html iframe

我有以下代码在等待第三方iframe时显示和隐藏加载GIF:

HTML

<div id="waitmessage" class="hide"><img src="/static/images/global/wait.gif"/></div>

的jQuery

$('.iframe').ready(function () {
    $('#button').click(function() {
        $('#waitmessage').removeClass('hide');
            alert('skywalker');
        });
    });
    $('.iframe').load(function () {
    $('#waitmessage').remove();
});

但是当加载iframe时,gif仍然在后台加载。 iframe是主页btw上的叠加层。

1 个答案:

答案 0 :(得分:2)

不知怎的,你等待.iframe准备就绪并且选择器没有触发这样的事件,假设选择器返回null,因为DOM还没有被加载。因此.ready事件处理程序中的任何内容都不会被执行。等待DOM加载的正确方法是使用预定义变量document。试试这个。

&#13;
&#13;
$(function() {
    $('#console').text( $('#console').text()+"\r\n"+'DOM is ready');
    $('#yt').on('load', function(){
       console.log('YouTube loaded');
       $('#console').text( $('#console').text()+"\r\n"+'YouTube loaded');
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="console"></pre>
<iframe id="yt" width="560" height="315" src="https://www.youtube.com/embed/AhhEYe5Hczo" frameborder="0" allowfullscreen></iframe>
&#13;
&#13;
&#13;