Junior STR Postado Dezembro 11, 2010 Denunciar Share Postado Dezembro 11, 2010 (editado) Olá pessoa! Sou novo aqui no Fórum e estou com esse probleminha aqui...Tenho o seguinte script que abre links aleatórios ao clicar em uma imagem ("IMAGEM.jpg") Por exemplo: No momento que o usuário entra no site, o script escolheu o LINK-02.html, então a IMAGEM.jpg terá um link para esse endereço.Porém se o usuário entrar em outra página ou recarregar a mesma página,o script irá escolher aleatóriamente outra url entre as mais de 20 que o meu script tem.Quero fazer com que os links não se repitam na mesma sessão do internauta. ou só se repitam quando todos os links do script já tiverem sido acessados.Agradeço quem puder me ajudar. Valeu...Segue o Script: <script language="Javascript"> hoje = new Date() numero_de_imagens = 2 segundos = hoje.getSeconds() numero = segundos % numero_de_imagens if (numero == 0) { link = "LINK-01.html" } if (numero == 1) { link = "LINK-02.html" } document.write('<a href="' + link + '"><img src="IMAGEM.jpg" border="0" /></a>') </script> Editado Dezembro 11, 2010 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 11, 2010 Denunciar Share Postado Dezembro 11, 2010 você não usa nenhuma linguagem no lado do servidor, como asp ou php??acho melhor usa-la nesse caso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Junior STR Postado Dezembro 14, 2010 Autor Denunciar Share Postado Dezembro 14, 2010 Ola amigo, eu queria uma solução sem aplicações em servidor até porque o blog onde vou usar esse scripttá hospedado no blogger, e no começo não quero 'gastar' muito com esse projeto, entende?Queria uma solução em javascript mesmo. Obrigado pela resposta. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 15, 2010 Denunciar Share Postado Dezembro 15, 2010 no lado do servidor você faria isso facil usando a session.agora, no javascript, cada vez q a pagina é carregada de novo, todo o javascript é recarregado tb, o jeito acho q vai ser gravar num cookie os numeros dos links q já tiverem sido mostrados, olhe ai: http://www.w3schools.com/JS/js_cookies.asp Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Dezembro 15, 2010 Denunciar Share Postado Dezembro 15, 2010 i aew Junior STR, bom eu tinha um script parecido com o que você precisa, eu adaptei aqui, se não estiver do jeito que você queria é só adaptar ele, bom segue o script:window.onload = function(){ addLiksDiversos( "imagemAleatoria" , 3); } var cookie = { set : function( name , val , dias ){ var data = new Date(); if ( !dias ) dias = 1000; data.setTime( data.getTime() + ( 86400 * dias ) ); document.cookie = name + "=" + val + "; expires=" + data.toGMTString() + "; path=/"; } , get : function( name ){ try { var cookies = document.cookie.split( name + "=" ); var c = cookies[1].split( ";" ); return c[0]; } catch( exc ){ return false; } } , unset : function( name ){ this.set( name , "" , -1 ); } } function addLiksDiversos( id , numero_de_imagens ){ var getAleatorio = function( numero ){ return Math.ceil( Math.random() * numero ); } var putLink = function( numeroAleatorio ){ var obj = document.getElementById( id ); var tagA = document.createElement( "a" ); tagA.setAttribute( "href" , "LINK-0" + numeroAleatorio + ".html" ); var tagImg = document.createElement( "img" ); tagImg.setAttribute( "border" , 0 ); tagImg.setAttribute( "src" , "http://www.iconspedia.com/uploads/302022621988656739.png" ); tagA.appendChild( tagImg ); obj.appendChild(tagA) } var run = function(){ var aleatorio = getAleatorio( numero_de_imagens ); if ( !cookie.get( "link" ) ) { cookie.set( "link" , aleatorio + "," ); } else { var arrCookie = cookie.get( "link" ).split( "," ); if ( numero_de_imagens == ( arrCookie.length - 1 ) ) { cookie.unset( "link" ); } else { var bContem; do { bContem = false; for ( var i = 0; i < ( arrCookie.length -1 ); i++ ){ if ( aleatorio == arrCookie[i] ) { aleatorio = getAleatorio( numero_de_imagens ); bContem = true; break; } } } while ( bContem ); } cookie.set( "link" , cookie.get( "link" ) + aleatorio + "," ); putLink(aleatorio); } } run(); } e o html fica ssim: <body> <div id="imagemAleatoria"></div> </body>bom é isso, espero que ajude abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Junior STR Postado Dezembro 16, 2010 Autor Denunciar Share Postado Dezembro 16, 2010 (editado) Romerito, desculpa a minha ignorância (é que sou supernovato em javascript), no caso eu teria q colocar o seu códigodentro do meu código? Pode me dar um exemplo?Kuroi, no link q você indicou pelo q entendi, é gerado um cookie onde a primeira vez que o user acessa é perguntadoo nome dele, e quando ele acessar novamente será exibida uma mensagem de boas vindas a ele (ex: Bem vindo Fulano...),sendo q "Fulano" foi o nome que ele deu na primeira vez q acessou. O problema é q não sei como adaptar para o meu caso(é que sou supernovato em javascript). Valeu por enquanto, galera! Abraços... Editado Dezembro 16, 2010 por Junior STR Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Dezembro 16, 2010 Denunciar Share Postado Dezembro 16, 2010 Romerito, desculpa a minha ignorância (é que sou supernovato em javascript), no caso eu teria q colocar o seu códigodentro do meu código? Pode me dar um exemplo?bom, você apenas precisa adicionar o codigo no head, entre a tag script, quando for chamar a funcao addLiksDiversos você precisa passar o id do elemento que vai receber o linke a quantidade de links que você tem, segue um exemplo completo:<html> <head> <title> Links </title> <script type="text/javascript" language="javascript"> var cookie = { set : function( name , val , dias ){ var data = new Date() ; if ( !dias ) dias = 1000 ; data.setTime( data.getTime() + ( 86400 * dias ) ) ; document.cookie = name + "=" + val + "; expires=" + data.toGMTString() + "; path=/" ; } , get : function( name ){ try { var cookies = document.cookie.split( name + "=" ) ; var c = cookies[1].split( ";" ) ; return c[0] ; } catch( exc ){ return false ; } } , unset : function( name ){ this.set( name , "" , -1 ) ; } } window.onload = function(){ addLiksDiversos( "imagemAleatoria" , 3);//aqui é chamada a funcao, no onload da pagina } function addLiksDiversos( id , numero_de_imagens ){ var getAleatorio = function(){ return Math.ceil( Math.random() * numero_de_imagens ) ; } var putLink = function( numeroAleatorio ){ var obj = document.getElementById( id ) ; var tagA = document.createElement( "a" ) ; tagA.setAttribute( "href" , "LINK-0" + numeroAleatorio + ".html" ) ; var tagImg = document.createElement( "img" ) ; tagImg.setAttribute( "border" , 0 ) ; tagImg.setAttribute( "src" , "http://www.iconspedia.com/uploads/302022621988656739.png" ) ; tagA.appendChild( tagImg ) ; obj.appendChild(tagA) } var run = function(){ var aleatorio = getAleatorio() ; if ( !cookie.get( "link" ) ) { cookie.set( "link" , aleatorio + "," ) ; } else { var arrCookie = cookie.get( "link" ).split( "," ) ; if ( numero_de_imagens == ( arrCookie.length - 1 ) ) { cookie.unset( "link" ) ; } else { var bContem; do { bContem = false; for ( var i = 0 ; i < ( arrCookie.length -1 ) ; i++ ){ if ( aleatorio == arrCookie[i] ) { aleatorio = getAleatorio() ; bContem = true ; break; } } } while ( bContem ) ; } cookie.set( "link" , cookie.get( "link" ) + aleatorio + "," ) ; putLink(aleatorio); } } run() ; } </script> </head> <body> <div id="imagemAleatoria"></div> </body> </html>qualquer dúvida posta aew, abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Junior STR Postado Dezembro 18, 2010 Autor Denunciar Share Postado Dezembro 18, 2010 (editado) Olá Romerito. Beleza? Fiz como você indicou e ao tentar colocar seu script entre <head></head> deu o seguinte erro:"Não foi possível analisar o seu modelo, pois sua formatação é inadequada.Certifique-se de que todos os elementos XML estão fechados adequadamente. Mensagem de erro em XML: O conteúdo dos elementos deve ser composto de dados de caráter bem formado ou marcação."Em relação a meu codigo com a div id="imagemAleatoria" ficou assim:<script language="Javascript"> hoje = new Date() numero_de_imagens = /* aqui como voce sabe tem o numero total de ifs */ segundos = hoje.getSeconds() numero = segundos % numero_de_imagens if (numero == 0) { link = "[color="#FF0000"]LINK-01.html[/color]" } /* aqui seguem outros ifs, cada um com um link diferente, no total são mais de 50 */ document.write('<div id="imagemAleatoria"><a href=" ' + link + ' "><img src="IMAGEM.jpg"</a></div>')Por enquanto valeu pela ajuda, abraços. Editado Dezembro 18, 2010 por Junior STR Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Troier Ben Postado Dezembro 18, 2010 Denunciar Share Postado Dezembro 18, 2010 O que significa esses ":" nos scripts ??? :wacko: Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Junior STR
Olá pessoa! Sou novo aqui no Fórum e estou com esse probleminha aqui...
Tenho o seguinte script que abre links aleatórios ao clicar em uma imagem ("IMAGEM.jpg")
Por exemplo: No momento que o usuário entra no site, o script escolheu o LINK-02.html, então a IMAGEM.jpg terá um link para esse endereço.
Porém se o usuário entrar em outra página ou recarregar a mesma página,
o script irá escolher aleatóriamente outra url entre as mais de 20 que o meu script tem.
Quero fazer com que os links não se repitam na mesma sessão do internauta.
ou só se repitam quando todos os links do script já tiverem sido acessados.
Agradeço quem puder me ajudar. Valeu...
Segue o Script:
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.