gpt4 book ai didi

javascript - 为什么 "window = window.parent;"会造成无限循环?

转载 作者:数据小太阳 更新时间:2023-10-29 05:13:23 25 4
gpt4 key购买 nike

我正在遍历一个框架层次结构,并尝试了以下方法来找到顶层框架:

var win = window;
while (win.parent) {
//perform actions on win
win = win.parent;
}

到目前为止,我知道正确的循环条件必须是:

while (win !== top) {

win.parent 的存在性检查似乎创建了一个无限循环。有什么特别的原因吗?为什么 top 应该有父级?

最佳答案

您还应该检查 window.parent == window 是否为 false。否则你将陷入无限循环。如果没有父级,则父级属性将引用自身(无限循环)。

var win = window;
while (win.parent && win.parent != win) {
//perform actions on win
win = win.parent;
}​

http://jsfiddle.net/EZfHf/

我找到了这个 on MDN :

If a window does not have a parent, its parent property is a reference to itself.

关于javascript - 为什么 "window = window.parent;"会造成无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9837716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com