Когда использовать окно.открывалка / окно.родительское окно.верхний
в JavaScript, когда использовать window.opener
/window.parent
/window.top
?
4 ответа:
window.opener
относится к окну, которое называетсяwindow.open( ... )
чтобы открыть окно, из которого он называетсяwindow.parent
относится к родителю окна в<frame>
или<iframe>
window.top
относится к самому верхнему окну из окна, вложенного в один или несколько слоев<iframe>
суб-окнабудут
null
(илиundefined
), когда они не имеют отношения к ситуации ссылающегося окна. ("Окно ссылки" означает окно в чьем контексте выполняется код JavaScript.)
Я думаю, что вам нужно добавить некоторый контекст к вашему вопросу. Однако основную информацию об этих вещах можно найти здесь:
window.opener
https://developer.mozilla.org/en-US/docs/Web/API/Window.openerя использовал окно.открывалка в основном при открытии нового окна, которое действовало как диалоговое окно, которое требовало ввода пользователя и должно было передавать информацию обратно в Главное окно. Однако это ограничено политикой происхождения, поэтому вам необходимо обеспечить как содержимое диалогового окна и открывающего окна загружается из одного источника.
window.parent
https://developer.mozilla.org/en-US/docs/Web/API/Window.parentя использовал это в основном при работе с IFrames, которые должны взаимодействовать с объектом window, который их содержит.
window.top
https://developer.mozilla.org/en-US/docs/Web/API/Window.topэто полезно для обеспечения, взаимодействие с окно браузера верхнего уровня. Вы можете использовать его для предотвращения другого сайта от iframing вашего сайта, среди прочего.
если вы добавите еще несколько деталей к своему вопросу, я могу привести другие более важные примеры.
обновление: Есть несколько способов справиться с ситуацией.
У вас есть следующая структура:
- Главное Окно
- Диалог 1
- Диалог 2 Открывается Диалогом 1
когда диалоговое окно 1 запускает код для открытия диалогового окна 2, после создания диалогового окна 2, у диалогового окна 1 Установите свойство на диалоговом окне 2, которое ссылается на открыватель диалогового окна 1.
так что если "дочернего окна" - это вы переменную для объекта диалогового окна 2 окна и "окна" - это переменная для Объекта 1 диалоговое окно. После открытия диалогового окна 2, но перед закрытием диалогового окна 1 выполните задание, подобное этому:
childwindow.appMainWindow = window.opener
после совершения задание выше, закрыть диалоговое окно 1. Затем из кода, выполняемого внутри dialog2, вы должны быть в состоянии использовать
window.appMainWindow
для ссылки на главное окно, объект окна.надеюсь, что это помогает.
top, parent, opener (а также window, self и iframe) - это все объекты окна.
window.opener
-> возвращает окно, которое открывает или запускает текущем окне.window.top
- > возвращает самое верхнее окно, если вы используете фреймы, это окно набора фреймов, если не используете фреймы, это то же самое, что окно или self.window.parent
- > возвращает Родительский кадр текущего кадра или iframe. Родительским фреймом может быть окно набора фреймов или другой кадр, если у вас есть вложенные кадры. Если не использовать фреймы, parent совпадает с текущим окном или self
когда вы имеете дело с всплывающие окна окна.открывалка играет важную роль, потому что мы должны иметь дело с полями родительской страницы, а также дочерней страницы, когда мы должны использовать значения на родительской странице мы можем использовать окно.открывалка или нам нужны некоторые данные о дочернем окне или всплывающем окне во время загрузки, а затем мы снова можем установить значения с помощью окна.открывалка