Javascript:通过嵌套的window对象循环查找特定元素

时间:2014-05-22 12:50:21

标签: javascript

我有一个嵌套对象。如何将其更改为while loopfor循环。所以我可以处理多个级别。

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

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望继续深入嵌套对象,直到找到没有windowdialogArguments的{​​{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;