Ir para conteúdo

POWERED BY:

Arquivado

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

lucas

Problemas com browsers

Recommended Posts

Hi,

 

Bom galera... eu já havia postado isso aqui neste fórum antes, mas, como ninguém me respondeu, e como surgiu mais um probleminha...

to postando denovo.

 

 

Seguinte, estou fazendo uma página de download. Nela, o usuário encontra um texto explicativo e um botão de "baixar agora".

Veja o código:

 

<script type="text/javascript">  function download() {	document.getElementById('div-download').style.display = 'inline';  }  function submitCod(f) {	fo = eval('document.'+f);	// aki, o action fica em branco para q o browser dê o "submit" para a mesma página q esta sendo exibida.	fo.action = '';	fo.submit();		// aqui ... faz a div sumir.	if (o = document.getElementById('div-download')) {	   o.style.display = 'none';	}		// aqui, limpa o código digitado pelo usuário.	document.getElementById('ixt-codtxt').value = '';		o = document.getElementById('img-keycod'); // referencia a var "o" para a tag img onde o código é exibido		src = o.src; // joga o endereço da imagem p/ a var src		o.src = '';	/* ele limpra o src da tag img fazendo com esta tag exiba nenhuma imagem (ficará assim: <img 	src="" /> */		o.src = src;	/* jogando o endereço da imagem novamente ao src da tag img, o bowser baixará novamente a img,	logo, será exibido um novo código. */		fo.action = 'javascript:submitCod(\''+f+'\');'; // coloca novamente o JS como o action do form;  }</script><a href="javascript:download();">baixar agora</a><div id="div-download" style="display:none">  <form method="post" name="fd" action="javascript:submitCod('fp');">	   <img src="cod.php" id="img-keycod" alt=""> <input type="text" name="cod" id="ixt-codtxt" /><br />	   <input type="submit" value="Baixar" onsubmit="" />  </form></div>

Explicando:

como vocês viram, na tah IMG contém o src como um arquivo .PHP. Ele gera uma imagem com um código escrito nela

(como o dessa página aqui: http://www.megaflog.com.br/cadastro (olha lá em baixo, onde tá escrito "palavra-chave").

 

Ao clicar no link "baixar agora", a div aparece com o código.

Clicando no botão "Baixar", é executada a função submitCod() (veja os comentários da função para entender o q ela faz).

 

 

Bom, expondo isso e com isso exposto, digo-lhes meus 2 problemas. Eles se chamam IE e firefox.

No IE tudo funciona apenas 1 vez. Ele dá submit no formulário, o arquivo vem p/ download, o código na tag IMG muda. Mas se clicar

no link "baixar agora" denovo, nada acontece.

 

No nosso amigo e "amado" FF, a imagem não muda. Só muda se eu der F5 na página.

Parece que ele faz cache da página e só limpa se visitar a página denovo.

 

Obrigado aew a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente isso (não testei):

 

<script type="text/javascript">  function download() {	document.getElementById('div-download').style.display = 'inline';  }  function submitCod(f) {	fo = eval('document.'+f);	// aki, o action fica em branco para q o browser dê o "submit" para a mesma página q esta sendo exibida.	fo.action = '';	fo.submit();		// aqui ... faz a div sumir.	if (o = document.getElementById('div-download')) {	   o.style.display = 'none';	}		// aqui, limpa o código digitado pelo usuário.	document.getElementById('ixt-codtxt').value = '';		o = document.getElementById('img-keycod'); // referencia a var "o" para a tag img onde o código é exibido		o.src = o.src + "?" + Math.random();	/* jogando o endereço da imagem novamente ao src da tag img, o bowser baixará novamente a img,	logo, será exibido um novo código. O Math.random() evita o cache no navegador. */		fo.action = 'javascript:submitCod(\''+f+'\');'; // coloca novamente o JS como o action do form;  }</script><a href="javascript:download();">baixar agora</a><div id="div-download" style="display:none">  <form method="post" name="fd" action="javascript:submitCod('fp');">	   <img src="cod.php" id="img-keycod" alt=""> <input type="text" name="cod" id="ixt-codtxt" /><br />	   <input type="submit" value="Baixar" onsubmit="" />  </form></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elcio Ferreira muito obrigado... estou a dias tentando resolver isso.

 

Aew, p/ que não viu o que ele fez, é muito simples... ele colocou um "Math.random();" na url.

 

Vamos lá! Eu tinha a seguinte imagem:

 

<img src="cod.php" id="img-keycod" alt=""><script>	// vários códigos	o = document.getElementById('img-keycod');	src = o.src;	o.src = '';	o.src = src;	// mais códigos</script>

Com a alteração de nosso amigo fica assim:

<img src="cod.php" id="img-keycod" alt=""><script>	// vários códigos	o = document.getElementById('img-keycod');	src = o.src + [b]Math.random()[/b];	// mais códigos</script>

Com isso, o browser vai pensar que é um outro arquivo e vai "puxar" o mesmo novamente.

Solução simples e inteligente... e com menos linhas :D

 

Vlw mesmo manooo

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.