Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Akssio

[Resolvido] Problema com Window.open...

Recommended Posts

A chamada a página através do window.open.. não está sendo feita quando colocada dentro da função $.ajax.

fiz o teste..colocando o window.open antes da chamada $.ajax.. e a popup foi chamada normalmente...

o código está a seguir:....

 

$.ajax({   url:"<?php echo $this->baseUrl;?>/contasreceber/encerrar/",
	   dataType:"html",
	   type:"get",
	   data: "id="+id,
	   success: function(data)
	   {
	        if(data.length >0){ 
	            if(confirm("Deseja imprimir um recibo agora?")){
	            window.open("<?php echo $this->baseUrl;?>/entrada/imprimir/, "_blank","width=600,height=800");
	            }
	        }
	   },
	   error: function(t, e, s) { alert('ERRO na chamada ajax'); } 
 });
		

alguém tem idéia do que pode estar acontecendo?...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou um fecha aspas aqui:

window.open("<?php echo $this->baseUrl;?>/entrada/imprimir/", "_blank","width=600,height=800");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte:

success: function(data)
           {
                alert( data );
                if(data.length >0){
talvez não esteja entrando no IF.

 

Oque é que você retorna ? pq usou o .length ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já havia feito o teste com alert!..

está entrando na condição sim.. mas não executa a linha do window.open

o ajax está retornando uma sequência numérica..

o length é só para ter certeza que recebeu alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu não tô vendo a aplicação rodar.. se você me informar oque retornar dos testes, fica um pouco mais fácil.

 

O confirm é executado ?

o teu navegador está com bloqueador de popup ativado ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu não tô vendo a aplicação rodar.. se você me informar oque retornar dos testes, fica um pouco mais fácil.

 

O confirm é executado ?

o teu navegador está com bloqueador de popup ativado ?

 

 

beleza .. intao vamos lá..

 

eu estou fazendo a requisição em uma página que me retorna um numero/codigo qualquer...

caso haja esse retorno, quero abrir a tal popup..

quando dou o alert.. aparece o conteudo esperado...o confirm é executado... mas o window.open não é chamado.

 

fiz o teste colocando o window.open antes da chamada de requisição ajax!.. e a chamada funcionou corretamente!.(bloqueador do browser não está ativado)

o mesmo não ocorre quando coloco dentro do success do ajax!.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquisando na net.. encontrei a solução!.: o link é este aqui!..

Site com Solução;

 

o código resolvido ficou assim:------

 

ok = false;
$.ajax({   url:"<?php echo $this->baseUrl;?>/contasreceber/encerrar/",
           dataType:"html",
           type:"get",
           data: "id="+id,
           async:false,
           success: function(data)
           {
                if(data.length >0){ 
                    if(confirm("Deseja imprimir um recibo agora?")){
                    ok = true;
                   }
                }
           },
           error: function(t, e, s) { alert('ERRO na chamada ajax'); } 
 });

if(ok){
window.open("<?php echo $this->baseUrl;?>/entrada/imprimir/id/", "_blank","width=600,height=800");
}

O grande segredo foi colocar a option ajax: async como false...

assim sendo.. o código seguinte a chamada $.ajax só vai ser lido.. após a conclusão do mesmo!..

 

vlw!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.