Ir para conteúdo
Fórum Script Brasil
  • 0

Propriedade "opener"


Skin_

Pergunta

15 respostass a esta questão

Posts Recomendados

  • 0

cara, eu nem cheguei a ver a explicação do MSDN... mas acho que o opener é pra identificar a janela ............

e no caso o self.close é pra fechar a janela SELF... por isso q antes teria q ter o window.opener=self

mas eu não sei direito, essa explicação detalhado eu vou ter q ficar devendo por enquanto... num posso entrar no MSDN agora pra ver se eu entendo e te passo .... mas alguém ai vai saber não é? galera??hehehehe

Link para o comentário
Compartilhar em outros sites

  • 0

sabe cara...

tah um pouco difícil de entender a lógica do JavaScript...

Me ajude com uma coisa... (vou tentar explicar!)

estou tentando entender esse código:

//Arquivo: index1.html:
<script>
function abre()
{
    window.open('index2.html');
    window.opener = self
    self.close();
}
</script>
<body onLoad="abre()">
window é um objeto, certo? bem... opener é uma propriedade do objeto window que me dirá como os documentos serão abertos no objeto window: _self, para abrir na mesma janela; _blanck, para abrir em outra... (estou errado?) Qaundo se fez:
window.open('index2.html');
Criou-se uma nova janela pop up cujo conteúdo é o arquivo index2.html... E com:
wndow.opener = self;
acabou-se dizendo que os documentos abertos na nova janela jenela subescreverão o atual, certo? Agora, duas perguntas: eu poderia simplismente ter definido a propriedade window.opener = self fazendo como abaixo?
window.open('index2.html','_self');
E, porque o próximo passo é fazer:
 self.close() 

esta linha faz referencia a qual objeto [window]? Ao que acabamos de criar e definimos sua prop. opener como self... ou ao antigo que disparou a função abre() no evento onLoad??

Essa linha não faz sentido para mim...

Se alguém me entendeu, será que poderia me explicar?

Obrigado....

ps: pra eu programar, reciso entender como o interpretador vai ler os códigos, e isso ninguém ensina... infelizmente!

Skin_

Link para o comentário
Compartilhar em outros sites

  • 0

cara, vamos tentar até conseguir....... smile.gif

seguinte........

window.opener = self; --> acho que esta linha cria um tipo de variável SELF......... sacou??...... vou te dar um exemplo pra ver c você pega...

window.open("link2.html","pop","")

window.opener = pop

pop.close

ou seja, você abre e fecha a janela POP....... seria algo assim q eu to imaginando, não sei se é o correto........

window.open('index2.html','_self'); --> isto você não pode fazer porque dentro do window.open você tem comandos específicos.... "LINK","NOME","CARACTERISTICAS" ....... sacou?? por isso q não pode por o self....

o proximo passo é self.close porque você tem q mandar fechar... ai no caso ele fecha a janela SELF.... que é definida como window.opener..... =)

acho que esse foi mais um passo hein...hehehe

ainda vamos chegar a uma solução....

Link para o comentário
Compartilhar em outros sites

  • 0

seguinte........

window.opener = self; --> acho que esta linha cria um tipo de variável SELF......... sacou??......

cara, mais ou menos...

ou seja, você abre e fecha a janela POP....... seria algo assim q eu to imaginando, não sei se é o correto........

Bem... esse código abre uma pop up e depois fecha a janela que disparou a função abre(), deixando apenas a pop up aberta.... - ao contrário do que você disse!

É... eu tembém não entendi!

window.open('index2.html','_self'); --> isto você não pode fazer porque dentro do window.open você tem comandos específicos.... "LINK","NOME","CARACTERISTICAS" ....... sacou?? por isso q não pode por o self....

cara... olha o q a MSDN fala disso... (Entra em Methods -> open...)

o proximo passo é self.close porque você tem q mandar fechar... ai no caso ele fecha a janela SELF.... que é definida como window.opener..... =)

Self ficou sendo o nome da janela? O que seria uma janela Self? E, o que seria uma janela definida como window.opener? (Não saquei nada! smile.gif )

Bem...

obrigado por estar me ajudando!

biggrin.gif

Skin_

Link para o comentário
Compartilhar em outros sites

  • 0

tava vendo o site do MSDN e realmente....... você pode usar o self ali sim, eu não sabia daquilo......... mas ai você apenas está dizendo que o navegador deve abrir a janela na mesma página, e não numa nova janela... ou seja, não seria bem um window.open pois não abriria uma janela nova e sim uma página dentro da janela atual....... certo???.....

sobre o window.opener é o seguinte.................

ele faz a referência à janela mãe, aquela que criou a janela nova...... o que acontece ali é que você cria uma referência, um vínculo do código à janela principal.... ai quando você define que ela é igual a SELF você está dizendo que os comandos direcionados pra SELF devem ser executados na janela inicial, a que contém o código.....

por isso que o self.close fecha a janela primordial....... pois o self se refere à mesma...... smile.gif muito confuso??

nós ainda vamos conseguir....hehehe

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, eu não me comparo com o Diraol, mas vou tentar ajudar também wink.gif

O opener serve pra abrir uma página expecifica num outro frame ou numa nova janela, sendo que a página que é executa o opener é fechada.

Então ela abre uma nova e se fecha, sacaram?

Tenho um código aki, muito útil, vejam se o entendem e se é útil à vocês também wink.gif

Isso vai dentro das tags <head> </head>

<script language="JavaScript">
function pagina(url)	{
	window.opener.document.location.href = ""+url 
	window.close();
}
</script>
Isso dentro da <body> </body>, lógico.
<a href="#" onClick="javacript:pagina('login.asp');">Clique aqui e efetue seu login</a>

Link para o comentário
Compartilhar em outros sites

  • 0

,Jan 24 2004, 08:31 PM]Bem, eu não me comparo com o Diraol, mas vou tentar ajudar também wink.gif

pô cara... não é assim...hehehehe

eu apenas sou um cara que põe em prática as coisas... mas nem sei tanto assim não... tanto que estou sofrendo aki pra ajudar ele...hehehehehe

e valeu pela explicação!!!!!! Muito boa.... smile.gif

falou

Link para o comentário
Compartilhar em outros sites

  • 0

Hehehe, é freskura brother wink.gif

Esse código ae eu fiz digamos, pois eu achei um na net e tentei modificar ele pra ficar como eu keria, e consegui.

Também não sei javascript digamos, mas tentando entender / interpretar o código o cara consegue, além do mais q eu sei um pouquinho de ASP né, dae ajuda. wink.gif

Mas e ae, deu pra ajudar a solucionar o problema do brother aí?

Espero que sim.

Link para o comentário
Compartilhar em outros sites

  • 0

pode usar o opner para retornar valores de uma janela aberta.. achei um monte de assuntos destes ai pesquisando no Forum..

Da uma pesquisada... tem uns ex. do jissa e do Andre Gusmao

Link para o comentário
Compartilhar em outros sites

  • 0

mas ai você apenas está dizendo que o navegador deve abrir a janela na mesma página, e não numa nova janela... ou seja, não seria bem um window.open pois não abriria uma janela nova e sim uma página dentro da janela atual....... certo???.....

OK... isso eu saquei.... Afinal, o que é o segundo argumento da função open()? O nome da nova janela, ou o método de abertura da nova janela? Eu poderia, após chamar a função

window.open('pagina.htm','POP');
fazer
POP.close()
pra fechar a janela que eu criei?? Ou seja, "POP" ficaria sendo o nome da nova Janela? _____________________________________________________________
sobre o window.opener é o seguinte................. ele faz a referência à janela mãe, aquela que criou a janela nova
Certo... até aí tudo bem! Desta forma, ao fazer
window.opener = self;
estarei definido a propriedade "opener" da janela que disparou a função abre() como sendo igual a self! Ótimo! O que isso significa? self será o novo nome da primeira janela?
ai quando você define que ela é igual a SELF você está dizendo que os comandos direcionados pra SELF devem ser executados na janela inicial, a que contém o código.....
Aqui você está dizendo que SELF é o nome da janela inicial, não é? Então.... eu poderia fazer
window.opener = Blablabla;
Blablabla.close();
e isso fecharia a janela mãe?(Em caso afirmativo, por que raios colocar a palavra self e não qqer outra? Vou além... porque preciso especificar isso e não só fazer:
window.opne("pagina.htm","POP","");
window.close();
)
muito confuso??
Acho que não... me parece que estou começando a entender biggrin.gif
O opener serve pra abrir uma página expecifica num outro frame ou numa nova janela, sendo que a página que é executa o opener é fechada. Então ela abre uma nova e se fecha, sacaram?
Guto, não saquei sua esplicação... O que você fez não é a mesma coisa que
function Abre() {
window.open("login.asp","LOGIN");
window.opner= self;
self.close();

? Apesar de não entender a necessidade das últimas duas linhas... acho que esse código é parecido com o seu! (estou sendo muito ousado.... num manjo nada JavaScript, mas o lance é que tá um pouco complicado de entender a lógica...)

Obrigado por estarem me ajudando!!!

wink.gif

Skin_

Link para o comentário
Compartilhar em outros sites

  • 0

então cara, eu também fiquei meio confuso com essa coisa do 'nome' da janela...hehehe

assim.... tenta fazer com o POP... como no exemplo que você criou... ou com o BLABLABLA.... veja se funciona...... eu não tenho como ficar testando pois estou sem o meu pc.....

agora..... bem, faça os testes e nos diga o resultado... dependendo do que acontecer pode ficar mais fácil.... smile.gif

falou ae!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Deixa eu ver se eu entendi: você tem uma janela normal que abre uma pop-up e o "X" da coisa é o opener e o self, certo?

opener serve para fazer referência à janela que abriu a pop (opener=a q abre)

self serve para fazer referência à janela que estiver em foco, independente do nome ou de ser a janela que abriu ou a que foi aberta.

Então, se você abrir uma pop-up e nela tiver o link

<a href="#" onClick="self.close">fecha esta janela</a>

irá fechar a janela que estiver com a função self.close

e se for

<a href="#" onClick="opener.close">fecha a janela q me abriu</a>

fechará a janela que deu origem (e o navegador pede pra você confirmar se quer fechar ou não)

cool.gif ok?

Link para o comentário
Compartilhar em outros sites

  • 0

para que serve.. muito simples, é Uma referencia de retorno a Janela ou Frame que abriu a Janela Atual.

window.opener.location=http://www.superscript.com.br

self.. é Uma referencia a Janela ou Frame ATUAL

self.location=https://www.scriptbrasil.com.br

parent.. Uma referencia de retorno a Janela na qual o Frame foi declarada.

Link para o comentário
Compartilhar em outros sites

  • 0

Hum... agora estou entendendo...

e, quando você faz:

window.opener = self;
estará mudando o foco para a janela que disparou o evento. (ou seja, para àquela cuja a propriedade window.opner aponta!) Hum.... interessante isso.... Claro!!! Depois de focar a janela anterior, faz todo o sentido executar:
self.close()

para fechar a janela mãe, pois a janela em foco deixou de ser a pop up!

Se eu estiver errado... por favor me corrijam....

no mais...

MUITO OBRIGADO PELA AJUDA!!!!

biggrin.gif

Skin_

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...