Autor Zpráva
kierenn
Profil *
Dobrý den,
mám dotaz. Vzhledem k tomu, že jsem amatér co se týče javascriptu, řeším tento pro mnohé snad triviální problém. Používám svůj oblíbený javascript http://www.jakpsatweb.cz/javascript/priklady/skryvani-odkryvani.html , ale mám dotaz, jak by šlo udělat, aby při refreshi, javascript o5 neskryl položku, kterou již zobrazil. Stránky mam psané v php, tak mě napadlo to nějak prokombinovat, jako, že by se při refreshi odeslala nějaká proměná v hlavičce nebo tak. Nicméně spoléhám na Vás.

Děkuji, velice mi to pomůže!
Paja
Profil
já bych to udělal přes cookies asi, práce s cookies je v javascriptu celkem bezproblémová ..
kierenn
Profil *
Děkuji za odpověď, zkusím tedy někde zapátrat. Jen bych chtěl poprosit o nějakou názornou ukázečku pokud by to bylo možné.

Předem děkuji
Paja
Profil
http://www.google.cz/search?hl=cs&q=javascript+cookies&btnG=Hledat&lr=
např:
http://www.quirksmode.org/js/cookies.html
kierenn
Profil *
mám tenhle skript

var state;
window.onload=function() {
obj=document.getElementById('skryvany');
state=(state==null)?'hide':state;
obj.className=state;



document.getElementById('setup').onclick=function() {
obj.className=(obj.className=='show')?'hide':'show';
state=obj.className;
setCookie();
return false;
}
}

function setCookie() {
exp=new Date();
plusMonth=exp.getTime()+(60*60*1000);
exp.setTime(plusMonth);
document.cookie='State='+state+';expires='+exp.toGMTString();
}

function readCookie() {
if(document.cookie) {
state=document.cookie.split('State=')[1];
}
}
readCookie();

funguje bez problémů, jenže problém toho je, že využívá id a pak k němu přiřazuje class podle toho jestli má být skrytý nebo odkrytý. Je to super, ale má to jeden problém. Když mám na stránce víc takových skrývacích prvků, tak je to dle mého nevyužitelné :( Vzhledem k tomu, že id nesmí být duplicitní. Máte někdo nějaký nápad?
habendorf
Profil
Nedávej tam natvrdo 'skryvany', ale předávej té funkci id elementu jako parametr.
kierenn
Profil *
to mě taky napadalo, tak sem zkusil udělat tohle
var state;
readCookie();
function zobrazSkryj(idecko){
		el=document.getElementById(idecko).style; 
		if (state==null){
		el.display=(el.display == 'block')?'none':'block';
		state=el.display;
		setCookie();}
		else{
		el.display=state;}
		return false; 
		
}

function setCookie() { 
		exp=new Date(); 
		plusMonth=exp.getTime()+(60*60*1000); 
		exp.setTime(plusMonth); 
		document.cookie='State='+state+';expires='+exp.toGMTString(); 
		} 
		
function readCookie() { 
		if(document.cookie) { 
		state=document.cookie.split('State=')[1]; 
		} 
		} 	

ale taky se tomu moc nechce, jsem teprve začátečník, tak mi nějak nejde odhalit chybu
v CSS pak mam .skryvany{display:none} a v xHTML <a onclick="zobrazSkryj('nejakeid')</a> stejně mi to ale neběhá
peta
Profil
kierenn
jakpsatweb - javascript - priklady
napriklad zakazani udalosti, pofiderni zakaz praveho tlacitka
Jak to mas napsane, dojde k tomu, ze provede onclik a vyvola href odkazu.

Druhak je dobra pomucka javascriptova konzola, ktera zahlasi radek chyby, pokud je programovy kod chybny.
FF - nastroje - chybova konzola

document.cookie='State='+state+';expires='+exp.toGMTString();
state=document.cookie.split('State=')[1];
cili kdyz si udelas pak alert(state), tak tam mas co?
Hadam, ze state = 'blabla;expires=12:34:23 2008';
Coz asi neni to, co jsi tam potreboval. Zkus nacitat cookies scripty, co na ne odkazal Paja na quirksmode.
Mozna prostudovat
jakpsatweb - javascript - cookies
jakpsatweb - javascript - priklady - cookies

A tez by hodne resil odkaz na tvou stranku.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0