Recentemente no trabalho me deparei com uma necessidade simples que a tempos não utilizava. Como passar valores de uma janela a outra usando Javascript?
Depois de quebrar a cabeça para lembrar e também pesquisando, resolví postar essa dica para memorizar e também ajudar a todos.
Este recurso é bastante utilizado quando se deseja pesquisar um determinado item em uma tabela e passar o código para um <input> do <form> que está em outra janela.
formprincipal.html
<html> <head> <script> function abrirPesquisa() { window.open("pesquisa.html"); // Abrira a janela de pesquisa } </script> </head> <body> <form> Digite um codigo: Descrição: <label name="descrproduto" id="descrproduto"> <p align="center"><a href="javascript:abrirPesquisa()";>Pesquisar</a></p> </form> </body> </html>
pesquisa.html
<html> <head> <script> function levarcodigo( codigo,descricao ) { /** O "segredo" está aqui nessas duas linhas, onde é passado o codigo para o <input> * e a descricao para o <label> */ top.opener.document.getElementById("campo1").value = codigo; top.opener.document.getElementById("descrproduto").innerHTML = descricao; window.close(); } </script> </head> <body> <a href="javascript:levarcodigo(1010,'Cafeteira');">1010-Cafeteira</a> <a href="javascript:levarcodigo(1020,'Jogo de panelas');">1020-Jogo de panelas</a> <a href="javascript:levarcodigo(1030,'Jogo de taças');">1030-Jogo de taças</a> <a href="javascript:levarcodigo(1040,'Churrasqueira');">1040-Churrasqueira</a> </body> </html>
Um exemplo bem simples, porém funcional. Importante ressaltar que para funcionar é necessário que as duas páginas(.html) estejam no mesmo domínio.
"Vida longa e próspera ao Javascript".
Perfeito!
ResponderExcluirParabéns amigo. Isso foi exatamente o que eu precisava no meu projeto. Não sabia que dava pra passar valores entre janelas diferentes.
Só tem um errinho:
o window.close precisa de perênteses, pelo menos nos navegadores que eu testei:
window.close()
Isso mesmo.
ResponderExcluirObrigado pela correção.
Ótimo! Me ajudou muito!
ResponderExcluirmuito bom cara parabens
ResponderExcluirobrigado amigo estava mesmo precisando de algo assim
ResponderExcluirParabéns, adorei o código.
ResponderExcluir