Avatar billede henninghabor Nybegynder
08. juni 2005 - 09:38 Der er 4 kommentarer og
1 løsning

Cookie skal være tilgængelig for hele domænet.

Hej,

Hvordan sætter man en cookie, så den er tilgængelig for hele domænet i stedet for at den kun er aktuel på den side, der satte den?
Avatar billede roenving Novice
08. juni 2005 - 14:49 #1
Indsætter path=\ i din cookie, hvis det er fordi du har forskellige paths, og domain=.domain.dk, hvis du har forskellige underdomæner !-)
Avatar billede henninghabor Nybegynder
09. juni 2005 - 08:37 #2
Hej roenving,

Hvordan skal det gøres i dette script (Der er ingen subdomæner):

var enablepersist="on" //Enable saving state of content structure using session cookies? (on/off)
var collapseprevious="no" //Collapse previously open content when opening present? (yes/no)

var contractsymbol='<img src="_up.png">' //HTML for contract symbol. For image, use: <img src="whatever.gif">
var expandsymbol='<img src="_down.png">' //HTML for expand symbol.


if (document.getElementById){
document.write('<style type="text/css">\n')
document.write('.switchcontent{display:none;}\n')
document.write('</style>\n')
}

function getElementbyClass(rootobj, classname){
var temparray=new Array()
var inc=0
var rootlength=rootobj.length
for (i=0; i<rootlength; i++){
if (rootobj[i].className==classname)
temparray[inc++]=rootobj[i]
}
return temparray
}

function sweeptoggle(ec){
var thestate=(ec=="expand")? "block" : "none"
var inc=0
while (ccollect[inc]){
ccollect[inc].style.display=thestate
inc++
}
revivestatus()
}


function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}

function expandcontent(curobj, cid){
var spantags=curobj.getElementsByTagName("SPAN")
var showstateobj=getElementbyClass(spantags, "showstate")
if (ccollect.length>0){
if (collapseprevious=="yes")
contractcontent(cid)
document.getElementById(cid).style.display=(document.getElementById(cid).style.display!="block")? "block" : "none"
if (showstateobj.length>0){ //if "showstate" span exists in header
if (collapseprevious=="no")
showstateobj[0].innerHTML=(document.getElementById(cid).style.display=="block")? contractsymbol : expandsymbol
else
revivestatus()
}
}
}

function revivecontent(){
contractcontent("omitnothing")
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|")
for (i=0; i<selectedComponents.length-1; i++)
document.getElementById(selectedComponents[i]).style.display="block"
}

function revivestatus(){
var inc=0
while (statecollect[inc]){
if (ccollect[inc].style.display=="block")
statecollect[inc].innerHTML=contractsymbol
else
statecollect[inc].innerHTML=expandsymbol
inc++
}
}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
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;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function getselectedItem(){
if (get_cookie(window.location.pathname) != ""){
selectedItem=get_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}

function saveswitchstate(){
var inc=0, selectedItem=""
while (ccollect[inc]){
if (ccollect[inc].style.display=="block")
selectedItem+=ccollect[inc].id+"|"
inc++
}

document.cookie=window.location.pathname+"="+selectedItem
}

function do_onload(){
uniqueidn=window.location.pathname+"firsttimeload"
var alltags=document.all? document.all : document.getElementsByTagName("*")
ccollect=getElementbyClass(alltags, "switchcontent")
statecollect=getElementbyClass(alltags, "showstate")
if (enablepersist=="on" && ccollect.length>0){
document.cookie=(get_cookie(uniqueidn)=="")? uniqueidn+"=1" : uniqueidn+"=0"
firsttimeload=(get_cookie(uniqueidn)==1)? 1 : 0 //check if this is 1st page load
if (!firsttimeload)
revivecontent()
}
if (ccollect.length>0 && statecollect.length>0)
revivestatus()
}

if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload

if (enablepersist=="on" && document.getElementById)
window.onunload=saveswitchstate
Avatar billede roenving Novice
09. juni 2005 - 15:55 #3
Den ser da godt nok noget amatør-agtig ud set med javascript-programmør-briller ...

Men du har een linje, som sætter cookien, den skal du bare tilføje:

document.cookie=window.location.pathname+"="+selectedItem + ";path=\";
Avatar billede henninghabor Nybegynder
09. juni 2005 - 18:44 #4
Hej roenving,

Du skal være velkommen til at lave det om. Det er et script jeg har fundet på nettet.

Jeg kan desværre ikke få det til at virke, det med at skrive path=\ eller dit forslag 15:55:40.

Du får points for din hjælp.

Hvis du har tid må du gerne lave et bedre menusystem til mig.

Jeg er interesseret i en menu der kan vise en skjult div ved klik på et billede. Billedet skal ændre sig og den skjulte div skal være synlig på de sider brugeren ellers besøger.

Noget der ikke er implementeret i ovenstående script er dog en funktion, der gør at kun en af de skjulte divs kan være åben.

Gider du hjælpe?
Avatar billede roenving Novice
11. juni 2005 - 11:02 #5
-- det er godt nok en ordentlig omgang at gå igang med ...

-- og tak for point ;~}
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