Avatar billede Slettet bruger
07. maj 2006 - 17:07 Der er 11 kommentarer og
1 løsning

Samme cookie på flere domæner?

Hej,

Jeg har et javascript som skriver en cookie, når en bruger vælger et foretrukket stylesheet på mit site.

Cookien skriver og læser på domænet, men jeg vil heller ha' den tildelt et unikt navn, således at cookien også kan læses fra andre domæner.

Så enten skal den tildele et unikt navn, eller også skal den kunne læse fra flere tildelte domæner.

Hvor skal hvad ændres??



function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
      && a.getAttribute("rel").indexOf("alt") == -1
      && a.getAttribute("title")
      ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 17:09 #1
Man kan ikke læse cookies på andre domæner, end der hvor den er sat. Du ved - så'n noget irriterende noget som sikkerhed.
Avatar billede Slettet bruger
07. maj 2006 - 17:19 #2
Damn, det var jeg ikke klar over.
Det er såmænd bare fordi jeg har en hosted service på et andet domæne. Html'en er præcis den samme, men stylesheet-valget følger desværre ikke med derover, så brugeren er nød til at skulle vælge en ekstra gang, hvilket jo ikke ligefrem er brugervenligt.
Er du sikker på, man ikke kan kringle den på en eller anden måde??
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 17:20 #3
Du kan jo tage hvadsomhelst, der ikke fylder mere end det kan være i et ølglas, med over i en querystring:  www.detandetdomæneduvedonok.com/hvaddetnuer.php?css=noget
Avatar billede Slettet bruger
07. maj 2006 - 17:46 #4
Hehe..
Jeg har aldrig nogensinde prøvet at lege med QueryString, så jeg er desværre blank.
Har nu læst lidt her: http://www.html.dk/dokumentation/objects/asp/intr53hj.htm
Men jeg aner ikke, hvordan det skal kodes. Så medmindre der er en, der gider gøre det for mig, så tror jeg bare jeg må droppe det, i hvert fald for denne gang...
Jeg troede jo oprindeligt bare, at der skulle ændres lidt i ovenfor stående javascript, og så var den i vinkel. Men desværre... :-|
Avatar billede Slettet bruger
07. maj 2006 - 18:00 #5
Nu ved jeg ikke, om der kommer en forbi, der vil stryge de 200 point ved at lave sådan en QueryString der' til mig.

Hvis ikke, kan du så ikke lige smide et svar Erik, da du tros alt har sparet mig for en del unødvendig surfing, - det kunne du jo godt få lidt for. :-)

Jeg lader tråden ligge nogle dage.
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 21:00 #6
Jeg samler slet ikke på point, tak. Og jeg har ikke energi til at hjælpe dig nu.
Avatar billede Slettet bruger
07. maj 2006 - 21:14 #7
Neej, jeg mente nok at kunne huske, at du ikke ville have point. Og mht. energien, ja så er der også rigtig mange andre ting, der er "lidt" vigtigere end dette her, - specielt i dette her vejr ;-)

Men tak for hjælpen anyway!
Avatar billede webstuff Nybegynder
08. maj 2006 - 08:47 #8
Du kan jo lave noget kringlet noget som kommer til at foregå sådan her:

1: Brugeren vælger et stylesheet
2: Der bliver lagt en kage med det stylesheet
3: Brugeren bliver sendt over til din anden side (med en querystring)
4: Der bliver lagt den samme kage på den anden side
5: Brugeren bliver sendt tilbage til den anden side igen

Når du sender brugeren over til side 2, skal du sende ham/hende videre til:
www.din-anden-side.dk/lave_kage.php?kage=et-eller-andet

og så laver du en variabel:
$kage = $_GET['et-eller-andet'];

og så er der bare at lave en kage med det indhold :-)
Avatar billede Slettet bruger
10. maj 2006 - 22:49 #9
For det første kender jeg intet til php. Jeg skriver alt i html.
For det andet kan jeg jo altså ikke uploade en under-fil på det domæne, da domænet udelukket udgør min hosted tjeneste.
Og for det tredje aner jeg stadig ikke hvordan det skal laves.

Så alt andet lige ser det jo temmeligt sort ud for mig. Den hurtig løsning på problemet blver således at droppe kagen, og lade det hele være, som det er nu. Jeg gider ikke bøvle mere med det, - jeg har simpelthen ikke tid.
Jeg troede som sagt, at løsningen bare var en lille finjustering, men ak nej.

Smid et svar, hvis du vil have lidt credit, webstuff. Ellers lukker jeg bare spørgsmålet.
Jeg beklager ulejligheden!
Avatar billede webstuff Nybegynder
11. maj 2006 - 19:33 #10
Jeg skal ikke have point for det her... Men fatter ikke at du ikke bare bruger php's include() funktion på www.greycell.dk - det er jo noget af et design du har :-)
og en MASSE underside ;o)
Avatar billede Slettet bruger
12. maj 2006 - 00:09 #11
Ja, det har jeg skam fået at vide massere af gange, og det kan da også godt være at det kommer en dag, men indtil videre har jeg bare smidt det hele i iframes, - så er det sgu også nemt nok at håndtere.
Problemet er at jeg brugte godt og vel et år på at lære det meste html, og nu har jeg altså bare ikke den tid mere, til at begynde også at lære php.

Nu hvor du har tjekke mit site, så kan jeg iøvrigt oplyse, at det var min topliste der skulle æde den cookie.
Avatar billede webstuff Nybegynder
12. maj 2006 - 11:07 #12
Okay.. Forståeligt nok..
Hvis jeg var dig ville jeg måske tage et kig på siden i FireFox@Linux.1024*768 ;o)
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