Quando usar a janela.Abrir / janela.pai / janela.superior

Em JavaScript quando usar window.opener / window.parent / window.top ?

Author: chriz, 2012-07-03

4 answers

  • window.opener refere-se à janela que chamou window.open( ... ) para abrir a janela da qual se chama
  • window.parent refere-se ao pai de uma janela num <frame> ou <iframe>
  • window.top refere-se à janela mais alta a partir de uma janela aninhada numa ou mais camadas de <iframe> sub-janelas
Esses serão null (ou talvez undefined) quando não forem relevantes para a situação da janela de referência. ("Janela de referência" significa a janela em cujo contexto o código de JavaScript é executar.)
 132
Author: Pointy, 2012-07-03 14:34:05
Acho que precisas de acrescentar algum contexto à tua pergunta. No entanto, informações básicas sobre estas coisas podem ser encontradas aqui:

window.opener https://developer.mozilla.org/en-US/docs/Web/API/Window.opener

Usei a janela.abre principalmente ao abrir uma nova janela que actuou como uma janela que necessitava de entrada do utilizador e precisava de passar a informação de volta para a janela principal. No entanto, isto é restrito pela Política de origem, então você precisa garantir tanto o conteúdo da janela e a janela de abertura é carregada da mesma origem.

window.parent https://developer.mozilla.org/en-US/docs/Web/API/Window.parent

Usei isto principalmente ao trabalhar com o IFrames que precisam de comunicar com o objecto da janela que os contém.

window.top https://developer.mozilla.org/en-US/docs/Web/API/Window.top

Isto é útil para garantir que está a interagir com a janela do navegador de nível superior. Você pode usá-lo para evitar outro site da iframing seu site, entre outras coisas.

Se adicionar mais detalhes à sua pergunta, posso fornecer outros exemplos mais relevantes.

Actualização: Há algumas maneiras de lidar com a sua situação.
Tem a seguinte estrutura:

  • Janela Principal
    • janela 1
      • Janela 2 Aberta Pela Janela 1

Quando a janela 1 executa o código para abrir a janela 2, Depois de criar a janela 2, ter a janela 1 define uma propriedade na janela 2 que referencia o abre-janelas 1.

Por isso, se "childwindow" é você variável para o objecto janela 2 janela, e "window" é a variável para o objecto janela 1 janela. Depois de abrir a janela 2, mas antes de fechar a janela 1, Faça uma atribuição semelhante a esta:

childwindow.appMainWindow = window.opener

Depois de fazer a atribuição acima, feche a janela 1. Depois, a partir do código que está a correr dentro da janela 2, deverá ser capaz de usar window.appMainWindow para referenciar a janela principal, o objecto da janela.

Esperança ajuda.
 21
Author: Mark At Ramp51, 2013-10-03 15:31:09

Top, pai, opener (assim como janela, self e iframe) são todos os objetos da janela.

  1. window.opener - > devolve a janela que abre ou lança a janela actual.
  2. window.top - > devolve a janela mais alta, se estiver a usar molduras, esta é a janela de frameset, se não estiver a usar molduras, esta é a mesma que a janela ou o self.
  3. window.parent - > devolve a moldura-mãe da moldura ou iframe actual. A moldura-mãe pode ser a janela de frameset ou outra moldura, se você tem molduras aninhadas. Se não usar molduras, o pai é o mesmo que a janela actual ou o self
 5
Author: Ravish, 2012-07-03 14:39:03
Quando estás a lidar com a janela de popups.O opener desempenha um papel importante, porque temos que lidar com os campos da página pai, bem como da Página filho, quando temos que usar valores na página pai podemos usar janela.opener ou queremos alguns dados na janela-filha ou janela popup no momento do Carregamento, em seguida, novamente, podemos definir os valores usando a janela.opener
 1
Author: Uday Jadhav, 2014-06-21 11:34:49