@Mey, не имея возможности увидеть ваш код, будет трудно точно определить, в чем проблема. Тем не менее, window.top
является ссылкой на самое верхнее окно. Кажется, это поддерживается всем основным браузером (см. here).
Вы абсолютно правы. Это не работает на окнах, созданных window.open()
. Как насчет этого решения: у окна открывателя есть свойство в открывшемся окне, чтобы отслеживать самое верхнее окно сразу после открытия. Таким образом, если какое-либо промежуточное окно закрыто, открытое окно уже имеет ссылку на самое верхнее окно. Позвольте мне показать вам, что я имею в виду.
Из верхнего окна большинства:
var c1 = window.open(...);
c1.window.topMost = window;
С первого всплывающего окна:c1
var c2 = window.open(...);
c2.window.topMost = window.topMost;
Из второго всплывающего окна:c2
var c3 = window.open(...);
c3.window.topMost = window.topMost;
Теперь, скажем, вы закрываете c1
или c2
, c3
все равно будет иметь ссылку на window.topMost
.
Вы можете поделиться некоторыми кодами? – JME
В моем веб-приложении открыто всплывающее окно C1 с помощью window.open. Другое всплывающее окно C2 можно открыть из C1 при нажатии гиперссылки. Каждое всплывающее окно имеет родительскую гиперссылку, которая будет перенаправлять основное родительское окно, когда пользователь щелкнет по нему. Ниже приведен javascript, чтобы найти самое верхнее родительское окно для перенаправления. Это хорошо работает. Но это вызывает ошибку, если я закрываю окно C1. потому что C2 не может найти свое родительское окно. var win = window; var topWindow = null; while (win = win.opener) { \t topWindow = win; } if (topWindow! = 'Undefined' && topWindow! = Null) { topWindow.location.href = 'url link'; } – Mey
Вы могли решить это? – JME