我有一个嵌套对象。如何将其更改为while loop
或for
循环。所以我可以处理多个级别。
var myObj = {};
if (window.dialogArguments && window.dialogArguments.previousWindow) {
if (window.dialogArguments.previousWindow.dialogArguments &&
window.dialogArguments.previousWindow.dialogArguments.previousWindow) {
//Continue traversing
}
} else {
//Do something like :
myObj = window.document.body;
}
previousWindow
是一个窗口对象的属性,它再次保存dialogArguments
。
答案 0 :(得分:0)
如果我理解正确,您希望继续深入嵌套对象,直到找到没有window
或dialogArguments
的{{1}}。
您可以循环使用更深层对象继续更新的变量,直到找到一个没有任何深度的变量:
dialogArguments.previousWindow
答案 1 :(得分:0)
如果我理解得很好,你可以使用
var win, tmp = win = window;
while(tmp = tmp.dialogArguments)
if(tmp = tmp.previousWindow)
win = tmp;
var myObj = win.document.body;
或
var win, tmp = win = window;
while((tmp = tmp.dialogArguments) && (tmp = tmp.previousWindow))
win = tmp;
var myObj = win.document.body;
或
var win, tmp = window;
do{ win = tmp; }
while ((tmp = tmp.dialogArguments) && (tmp = tmp.previousWindow))
var myObj = win.document.body;