我想创建一个递归JavaScript循环,它可以显示所有的框架(使用IFRAMES标签或使用FRAME标签)。结果应该给予FrameName、NestingLevel、FrameURL等。
例如,当我们在Google Chrome中打开“开发者工具”时,我们可以在控制台选项卡中看到所有的框架(甚至是嵌套的框架)。x1c 0d1x
请给予一个递归循环的错误处理(iframe安全问题)。!
样品代码:
function getFramesInfo(oWin) {
arrFrames = oWin.frames;
//alert(arrFrames.length);
if (arrFrames.length == 0) {
alert('document do not have frame(s)');
} else {
for (i = 0; i < arrFrames.length; i++) {
console.log(i + ' ' + arrFrames[i].location.href);
if (arrFrames[i].document) {
getFramesInfo(arrFrames[i]);
}
}
}
}
//Calling This Function
getFramesInfo(window);
4条答案
按热度按时间xlpyo6sf1#
替代/改进代码:
iih3973s2#
经过谷歌搜索和探索,我已经找到了一个简单的解决方案,但我认为这个答案应该加以改进,以避免任何可能的错误(* 即精确的错误处理应该做,以避免跨域帧问题 *):
样品溶液:
用途:
yqyhoc1h3#
这里是另一个(快捷方式示例)
jq6vz3qz4#
在浏览代码时,我最近学习了一个新代码,使用以下代码,该代码将javascript窗口对象作为输入,并返回其所有嵌套窗口(包括多层嵌套)。然而,这个函数是一种高效/优雅的方法,可以用来获取对所有窗口的引用(对象)和所有子窗口(对象)。我检查了这个函数,发现它工作得很好,可以理解,使/写这个函数完全递归,因为DOM对象树实际上是一个n元,而不是二进制。