使用Jquery强制加载(Reload)一个可以是IFrame的VAR



当我重写。aspx视频流页面的嵌入参数时,我试图强制重新加载iframe(作为var)。基本上,我在。aspx页面上有3个iframe,它们使用相同的。aspx页面源。这些iframe可能在焦点中,也可能不在焦点中,但是使用. live click(在缩略图集上)触发,Jquery中的.next函数处理依赖于缩略图旁边的下一个DOM元素的交换。VAR 'img'可能是img或IFRAME,所以我需要先测试VAR是否为IFRAME,如果是,则强制重新加载源。问题是,我们基本上是在改变Iframe SRC页面(.aspx)上的参数,这反过来远程加载视频,然后最终反映在主Iframe中。我的jquery/js并不像它应该的那样强大,所以请在你的回复中善良。提前感谢。:)

JQuery代码片段:

$('.workThumbnails img').live('click', function () {
                $('img', $(this).parents('.workThumbnails')).toggleClass('whiteBorder', false);
                $(this).toggleClass('whiteBorder', true);
                var img = $(this).next('iframe,img');
                var work = $(this).parents('.ourWork');
                $('.workContent *', work).fadeTo('slow', 0.0, function () {
                    $('.workContent', work).empty();
                    $('.workContent', work).append(img.clone());
                    $('.workContent *', work).fadeTo('slow', 1.0);
                });
            });

HTML代码片段:<iframe width="675" height="379" src="../../video.aspx?vid=448679&cid=1c0b792573224ebcb925e5306b333907" frameborder="0"></iframe>

var img = $(this).next('iframe,img'); // I would consider renaming this variable
if(img.is('iframe')){
    img.load(function(){ /* callback */ });
    img.contents().get(0).location.reload();
    return;
}

您可以使用以下代码:

if(img.is('img'))img.attr('src', img.attr('src'));
else img[0].contentDocument.location.reload();

最新更新