簡體   English   中英

Javascript:循環訪問嵌套窗口對象以查找特定元素

[英]Javascript : Looping through nested window object to find particular element

我有一個嵌套對象。如何將其更改為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

如果我理解正確,那么您將希望繼續深入嵌套對象,直到找到沒有dialogArgumentsdialogArguments.previousWindowwindow

您可以循環使用一個變量,並繼續使用更深的對象進行更新,直到找到沒有更深層次的變量為止:

var myObj = {};
var currentWindow = window;

while (currentWindow.dialogArguments && currentWindow.dialogArguments.previousWindow) {
  currentWindow = currentWindow.dialogArguments.previousWindow;
}
else {
  myObj = currentWindow.document.body;
}

如果我理解得很好,您可以使用

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM