我正在遍历框架层次结构,并尝试以下内容来查找顶部框架:
var win = window;
while (win.parent) {
//perform actions on win
win = win.parent;
}
Run Code Online (Sandbox Code Playgroud)
到现在为止,我知道正确的循环条件必须是:
while (win !== top) {
Run Code Online (Sandbox Code Playgroud)
存在检查win.parent似乎创造了一个无限循环.这有什么特别的原因吗?为什么top要有父母?
您也应该检查是否window.parent == window?是false病程否则你将最终获得一个无限循环.如果父属性没有父将引用它(无限循环),则为Couse.
var win = window;
while (win.parent && win.parent != win) {
//perform actions on win
win = win.parent;
}?
Run Code Online (Sandbox Code Playgroud)
我在MDN上发现了这个:
如果窗口没有父窗口,则其父属性是对自身的引用.
链接到MDN:
https://developer.mozilla.org/en/DOM/window.parent