Avatar billede Holger123 Nybegynder
22. april 2011 - 20:30 Der er 7 kommentarer

Vis kun div ved første besøg

Jeg har en div på mit site, som kun skal være synlig for brugerne ved første besøg. Jeg vil bruge cookies med javascript til at identificere, om brugeren har været på sitet før.

Jeg har fundet koden nedefor på følgende link: http://www.codingforums.com/archive/index.php/t-149413.html

function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

window.onload=function()
{
var obj=document.getElementById('overlay'),
username=getCookie('State');
if (username!=null && username!="")
obj.className='hide';
else
{
obj.className='show';
setCookie('State','show',365);
}
document.getElementById('close').onclick=function()
{
var obj=document.getElementById('overlay'),state;
obj.className=(obj.className=='show')?'hide':'show';
state=obj.className;
return false;
}
}


Jeg har prøvet at sætte den ind. Gjorde følgende:
1) Satte javescript-kode rundt om
2) Satte det hele ind i head-sektionen.
3) Udskiftede teksten "overlay", de steder den findes, til navnet på min div.

Det virker ikke. Er det et spørgsmål om, at der i koden ikke er indsat værdier, som angiver, at brugeren skal have været på sitet en gang før, før diven fjernes?

Jeg er helt ny med javascript og cookies. På forhånd mange tak for hjælpen :)
Avatar billede beetle Nybegynder
23. april 2011 - 00:29 #1
Jeg har svedt med samme stump JS som virkede fint - de fleste gange - i Firefox, Chrome og Safari, men kun sporadisk i Opera og stort set aldrig med Internet Explorer.

Jeg endte med at droppe JS til formålet, og lavede et php script i stedet for der smagte og bagte cookies i stedet for.
Avatar billede beetle Nybegynder
23. april 2011 - 00:41 #2
Avatar billede Holger123 Nybegynder
23. april 2011 - 11:59 #3
Okay. Hvordan skal det sættes op? Jeg er ikke så erfaren med php. Skal jeg have min div som en include eller require?
Avatar billede beetle Nybegynder
23. april 2011 - 13:58 #4
<?php if ( ... ) { ?>

HTML hvis

<?php } else { ?>

HTML hvis ikke

<?php } ?>
Avatar billede Holger123 Nybegynder
23. april 2011 - 19:59 #5
Da jeg oprettede spørgsmålet, vidste jeg, at jeg nok ikke ville kunne løse udfordringen uden en del hjælp. Derfor ville jeg give 200 point for en løsning.

Jeg kan nu se, at jeg mangler en del viden om programmering. Mere, end jeg havde forventet.

Jeg ved slet ikke, hvor jeg skal begynde.

Hvad gør cookien nu? Sætter den en header på? Ændrer den sproget? Jeg kan slet ikke gennemskue koderne.

Jeg ved ikke, om det er almindeligt, at man bare kan lave sådan en løsning ud fra koder som disse uden videre. Som en sidebemærkning vil jeg spørge dig: Hvor har du lært alt det om programmering? :)

På forhånd tak.
Avatar billede tjens Nybegynder
23. april 2011 - 23:15 #6
Koden i spørgsmålet referer til className hide og show.

Det betyder at javascriptet, du har hentet, refererer til noget CSS, som også skal være på siden i afsnit STYLE.

Det må være vist, der hvor du kopierede javascriptet fra.
Avatar billede Holger123 Nybegynder
23. april 2011 - 23:20 #7
Hej tjens

Det er ikke vist på siden, hvorfra jeg kopierede javascriptet.
I øvrigt har jeg pga. beetles dårlige erfaringer med scriptet droppet det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester