如何检查如果一个相同的域,动态加载的iframe,我没有控制是100%加载

how to check if a same domain, dynamically loaded iframe which i have no control over is 100% loaded?

本文关键字:加载 iframe 动态 100% 控制 如果 检查 何检查 一个      更新时间:2023-09-26

Tumblr中的照片集是作为iframe提供的。

我想通过jQuery操纵这个iframe,让它看起来像我想要的那样,我也能做到,但它并不总是完成它正在做的事情。

我认为这是因为当页面加载时,有很多事情同时发生。我需要一种方法来检查这个我无法控制的iFrame,在我做有趣的事情之前加载100%。

在其他问题中提出了各种各样的技巧,但我认为它们不适合这种情况。下面是一个来自Stack Overflow问题"jQuery .ready in a dynamic inserted in a iframe"的例子

function callIframe(url, callback) {
    $(document.body).append('<IFRAME id="myId" ...>');
    $('iframe#myId').attr('src', url);
    $('iframe#myId').load(function() 
    {
        callback(this);
    });
}

但这对我来说毫无意义,尽管它被选中了,有100个赞。在这个"答案"中,iframe被函数附加。这对我来说不是一个动态加载的iframe!

下面是我的代码与'哑' iframe加载检查器。代码可以工作,但只是有时。你可以在这里看到它的作用http://syndex.me(第三篇文章是一个照片)

$(".post_relative").each(function () {
        var post_relative = $(this);
        var photoset = post_relative.find('.html_photoset');
        if(photoset.length){
            var myFrame = photoset.find("iframe");
            myFrame.load(function(){
                var newCover=myFrame.contents().find('.photoset').children(':first-child').children(':first-child').attr("href")+ '?'+(Math.random()*10000);
                post_relative.append("<img src='"+ newCover +"' alt='Cover Page' />");
                var psHeight = post_relative.find('img');
                psHeight.load(function(){
                if (psHeight.height()>heightRef){
                    psHeight.height(heightRef);
            }
                myFrame.hide();
            })
        })
        }
    });

所以问题是:你如何执行一个脚本基于100%的加载和准备的iframe?

使用onload事件在每个帧的上下文中写入数据。您有两个选项:

    <
  • 饼干/gh>
  • localStorage

第二个是一个非常好的解决方案,但它不支持IE7。如果它在相同的模式、域和端口中,那么您可以从两个框架中访问这些项。

如果你使用jquery,你有没有尝试过

$("#iFrameId").load(function (){
    // do something once the iframe is loaded
});