更好的方法来查找页面上的所有iframe

时间:2011-11-18 14:19:55

标签: javascript

我正在开发iPad应用程序,因为有超过6个iframe可用。完全加载页面后,页面滚动到了中间的某些位置。所以我决定让页面滚动顶部编写这样的JavaScript代码:

$(document).ready(function() {
        try {
            var iframecompleted = [];
            $("iframe[id*='iframe']").each(function(eli, el) {
                $(this).bind("load", iframeinit);
            });
            function iframeinit() {
                iframecompleted.push($(this).id);
                $(this).unbind("load", iframeinit);
            }

            var timer = setInterval(function() {
                if ($("iframe[id*='iframe']").length == iframecompleted.length) {
                    clearInterval(timer);
                    $('html, body').animate({
                        scrollTop: 0
                    }, 500);
                    if (FrameID != "") {
                        var j = 0;
                        var ss = FrameID.split(",")
                        for (j = 0; j < ss.length; j++) {
                            var collPanel = $find("pane" + ss[j]);
                            if (collPanel != null)
                                collPanel.set_Collapsed(true);
                        }
                        FrameID = "";
                    }
                }
            }, 10);
        }
        catch (e) {
            alert(e);
        }
    });
}

我想找到一种更好的方法来完成这项任务。你的想法更受欢迎。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

var count = 0;

$("iframe").load(function() {
    if (++count === 6)
    {
        alert("TODO: All the frames are loaded, do you stuff");
    }
});

http://jsfiddle.net/eDVEY/

答案 1 :(得分:0)

您可以这样做:

var count = $('iframe').length;
    $(function() {
      $('iframe').load(function() {
        count--;
        if (count == 0)
            alert('all frames loaded');
      });
    });

希望有所帮助