我需要根据嵌套在iframe中的iframe嵌套iframe。
我的代码结构如下所示。它在所有浏览器中都能正常工作,但是它会导致无限循环。但是,当它处于无限循环时,cpu根本不会被提升。
var getNested_iframes = function (document_element) {
$.each(document_element.find("iframe"), function () {
getNested_iframes($($(this)[0].document));
});
alert(".");
}
getNested_iframes($(myWindow._element));
alert("done");
答案 0 :(得分:0)
我不太确定你为什么这样做就像你正在做的那样,但是“$($(this)[0] .document)”对我来说看起来很可疑。在任何情况下,值得注意的是jquery对象本质上是任意大小的列表,所以你可以通过迭代而不是递归(并且从递归到迭代交换,当你可以做到这一点时,通常会导致像这样的问题来简化或者清理)。请尝试以下
$startlist = $(myWindow._element);
while($startlist.length > 0)
{
$nextlist = $startlist.find("iframe");
alert("(" + nextlist.length + ")");
$startlist = $nextlist;
}
alert("done");
它甚至可以让你跟踪每个级别中有多少级别,有多少级别,等等。