Why does "window = window.parent;" create an infinite loop?
You should also check if window.parent == window
is false
. Otherwise you will end up with an infinite loop. If there is no parent, the parent property will reference to itself (infinite loop).
var win = window;
while (win.parent && win.parent != win) {
//perform actions on win
win = win.parent;
}
http://jsfiddle.net/EZfHf/
I found this on MDN:
If a window does not have a parent, its parent property is a reference to itself.
top
's parent is itself.
top == top.parent //true