Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos F.

[Resolvido] Comunicando pop-up com outra página

Recommended Posts

Olá pessoal,

 

Estava tentando fazer com que quando o usuario entrasse no site abrisse um popup e o conteudo do site ficasse escondido até que o usuario clicasse em "sim" então o popup fecharia e apareceria o conteudo do site.

Porém existe um pequeno problema, se eu fizer isto sempre que eu retornar à página principal ele vai abrir o popup, o que posso fazer para isso não ocorrer?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode trabalhar com COOKIES.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Incrementando...

Deixa o body com o display: none;

Podes criar um confirm()

dai a pessoa lê o texto

Se ela clicar no sim...

muda o display para '';

Se ela clicar no não podes fechar a página ou redirecionar;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como eu posso fazer essa comunicação, ja que se tratam de duas janelas diferentes?

 

Pessoal resolvi fazer tudo em uma página só e mudando o valor do "style.display", andei lendo muito sobre cookies e resolvi utilizar para quando o usuario der um refresh não aparecer denovo a mensagem.

Mas não estou conseguindo manipular os cookies corretamente.

 

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<meta name="author" content="" />
	<title>Teste</title>
	<script language="javascript" src="script.js"></script>
	<style>
		#escondido{
			display: none;
		}
		
		#guri{
			display: none;
		}
	</style>
</head>

<body>
<div id="popup">
<a href="#" onclick="entra();">Sim</a>
<a href="http://www.google.com.br">Nao</a>
</div>
<div id="escondido">
Agora você consegue acessar.
</div>
</body>
</html>

script.js

function gravaCookie(nome, value, horas){
var expire = "";
if(horas != null){

expire = new Date((new Date()).getTime() + horas * 3600000);

expire = "; expires=" + expire.toGMTString();

}
document.cookie = nome + "=" + escape(value) + expire;
}

function lerCookie(nome)
{
var valorCookie = "";
var search = nome + "=";
if(document.cookie.length > 0) {
offset = document.cookie.indexOf(search);
if (offset != -1){
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
valorCookie = unescape(document.cookie.substring(offset, end))
}
}
return valorCookie;

}

if(acesso){
	document.getElementById("escondido").style.display="block";
	document.getElementById("popup").style.display="none";
}

var acesso = lerCookie("acessar");


function entra() {
document.getElementById("escondido").style.display="block";
document.getElementById("popup").style.display="none";
gravaCookie("acessar","159",1);
}

Galera,

 

Como ninguem respondeu eu continuei pesquisando, encontrei um algoritimo que gostei muito para utilizar cookies.

Consegui criar o cookie e consegui ler a partir de um "alert();" mas ele não funciona com o proposito desejado.

Vou postar os códigos do index e do javascript.

 

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <meta name="author" content="" />
        <title>Teste</title>
        <script language="javascript" src="script.js"></script>
        <style>
                #escondido{
                        display: none;
                }
        </style>
</head>

<body>
<div id="popup">
<a href="#" onclick="entra();">Sim</a>
<a href="http://www.google.com.br">Nao</a>
</div>
<div id="escondido">
Agora você consegue acessar.
</div>
</body>
</html>

script.js

var w3cookies = {
  date: new Date(),
  // Cria o(s) cookie(s)
  // Forma de uso: w3cookies.create(’nome_do_cookie’,'valor’,dias_para_expirar);
  create: function(strName, strValue, intDays) {
		  if ( intDays ) {
				  this.date.setTime(this.date.getTime()+(intDays*24*60*60*1000));
				  var expires = "; expires=" + this.date.toGMTString();
		  } else {
				  var expires = "";
		  }
		  document.cookie = strName + "=" + strValue + expires + "; path=/";
  },
  // Ler as  informações de um cookie em específico
  // Forma de uso: w3cookies.read(’nome_do_cookie’);
  read: function(strName) {
		  var strNameIgual = strName + "=";
		  var arrCookies = document.cookie.split(";");
		  for ( var i = 0, strCookie; strCookie = arrCookies[ i ]; i++ ) {
				  while ( strCookie.charAt(0) == " ") {
						  strCookie = strCookie.substring(1,strCookie.length);   
				  }
				  if ( strCookie.indexOf(strNameIgual) == 0 ) {
						  return strCookie.substring(strNameIgual.length,strCookie.length);       
				  }
		  }
		  return null;
  },
  // Delete um cookie desejado
  // Forma de uso: w3cookies.erase(’nome_do_cookie’);
  erase: function(strName) {
		  this.create(strName,"",-1);
  }
}


var acesso = w3cookies.read('Cookie');

if(acesso == "123"){
        document.getElementById("escondido").style.display="block";
		document.getElementById("popup").style.display="none";
}

function entra() {
document.getElementById("escondido").style.display="block";
document.getElementById("popup").style.display="none";
w3cookies.create('Cookie','123',24);
alert(acesso);
}

Porfavor se alguem puder me ajudar eu agradeço muito pois ja não sei o que fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca o teu:

if(acesso == "123")

{

document.getElementById("escondido").style.display="block";

document.getElementById("popup").style.display="none";

}

por:

window.onload = function()

{

if(acesso == "123")

{

document.getElementById("escondido").style.display="block";

document.getElementById("popup").style.display="none";

}

}

Acredito que ai irá funcionar do jeito que você quer.

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.