Ir para conteúdo

POWERED BY:

Arquivado

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

JGD

charmar window.location.href 1vez só no carregamento da pag.

Recommended Posts

Olá Pessoal,

Preciso de ajuda para executar um redimensionamento via:

 

window.location.href = "pagina.php?p="+ xp +"&p2="+ xp2;

 

 

Ocorre que estou chamando a função dinamicamente pelo php por razão de permissões pré-estabelecidas a partir do perfil do usuário que está acessando a pagina.

 

Ou seja, no inicio do carregamento da página PHP efetua a validação da permissão do usuário e daí então redireciono o mesmo para a parte da tela que o mesmo tem permissão (P=x &p2=y)

...

 

No entanto ao chamar o função acima seja no inicio da tela (após o php) ou no final da tela (após o carregamento) a função entra e loop infinito.

 

Estou chamando assim:

 

echo "<script>funcao_red('".$p."','".$p2."')</script>";

 

 

Preciso de uma forma para executar o redir... Apenas uma vez.

 

 

Detalhes:

a) Não posso usar o redirect do php " header("location: pagina.php) "...

Porque a pagina já foi encabeçada no navegador...

 

B) Preciso que seja em JavaScript mesmo... Porque preciso manter a captura via $_GET[variavel] da indicações das partes da página.

 

Alguém teria aí um palpite para ajudar?

 

 

Puxa?

Será que ntão tem mesmo alterantiva no JS??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Haidan, sim onload fuciona da mesma forma que :

echo "<script>funcao_red('".$p."','".$p2."')</script>";

 

Como valida a execução apenas uma vez.. considerando que preciso em JS...

- Assim não rola...

 

var n=1; //// gobal
 
function redir_pagina(xp1,xp2){
...
if(n==1){
n++;
window.location.href = "pagina.php?p1="+ xp +"&p2="+ xp2;
}
..
 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, isso é gambiarra.

 

faça o redirect no php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opah Willian... Blz!?

 

Sim... Pode não ser a melhor forma ...Mais é que tem pelo menos umas 10 telas e sub-telas com a validação/permissões na parada.. E tempo é que ninguem tem. (rs).

 

Não tem memo um jeito? Cosiderando sua exepriência?

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal,

 

“Há sempre mais de uma maneira de se chegar a Roma”...

 

Resolvi o problema com

 

Chamando o redir... via setInterval do JS/Jquery mesmo.

 

Antes porem, alguns comentários:

 

O problema (além do comentado acima):

Como tinha que pegar as permissões para depois redirecionar... Entrava em “loop” porque de “certa” a pagina não estava tolamente completa ou carregada – a meu ver.

 

Daí mesmo usando “JS” ou “header("location: pagina.php")”

Cairia fora da condição...

 

Então precisa de um “flag” que pegasse a existência da informação para posterior validação.

Via “Session” não dava porque ao recarregar “estaciava” também a session vazia.

 

Única saída foi usar cookie...

 

Segue:

 

$(document).ready(function() {

var timer = null, interval = 1,value = 0;
//globais
comeca();
function comeca(){
var xVrl = pegaLerCookie('aqui');
if(xVrl=='vcfez'){
   ExcluirCookie('aqui');
}else{

 if(timer !== null) return;
  timer = setInterval(function () {
      value = value+1;
      $("#timeLeft").html(value);
      if(value==1){
        termina();
      }
    }, interval);
   }
}
function termina(){
  GerarUmCookie('aqui', 'vcfez', 1);
  clearInterval(timer);
  window.location = ("pagina.php?p1=4&p2=3");
}
});

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.