[英]Javascript : Looping through nested window object to find particular element
我有一个嵌套对象。如何将其更改为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
。
如果我理解正确,那么您将希望继续深入嵌套对象,直到找到没有dialogArguments
或dialogArguments.previousWindow
的window
。
您可以循环使用一个变量,并继续使用更深的对象进行更新,直到找到没有更深层次的变量为止:
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.