Ссылки на javascript open window

У меня возникли проблемы с пониманием того, как ссылаться на новые окна браузера после их открытия. В качестве примера, если я создал 3 новых окна из основного (index.html):

var one = window.open( 'one.html', 'one',"top=10,left=10,width=100,height=100,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no");
 var two = window.open( 'two.html', 'two',"top=100,left=10,width=100,height=100,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no");
 var three = window.open( 'three.html', 'three',"top=200,left=10,width=100,height=100,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no");
 two.focus();

Как я могу программно сфокусировать (или просто ссылаться на) браузер "три", если браузер "два" в настоящее время находится в фокусе?

1 ответ

У меня был бы массив дочерних окон в родительском окне. Затем для каждого дочернего окна есть функция, которая добавляет дочерний элемент в родительский массив childWindow. Таким образом, вы можете иметь произвольное количество дочерних окон.

//In the 'Main' window
var childWindows = new Array();
//In the child window
function onload()
{
 window.parent.childWindows.push(window);
}
window.attachEvent('onload', onload);
//or
window.load = onload
//or with jQuery
$(window).ready(onload)

Установите фокус так:

//In the parent
childwindows[i].focus();
//In a child
parent.childwindows[i].focus();
//or to focus on next child from within a child
var len = parent.childwindows.length;
for (var i = 0; i < len; i++)
{
 if (parent.childwindows[i] && parent.childwindows[i] == window) //you might want some other way to determine equality e.g. checking the title or location property.
 {
 var n = (i + 1) % childWindows.length;
 childwindows[n].focus();
 }
}

licensed under cc by-sa 3.0 with attribution.