Avatar billede danieru Nybegynder
14. oktober 2008 - 17:30 Der er 3 kommentarer og
1 løsning

Mystisk IE problem.

Jeg ved ikke om dette burde være i JS eller PHP, så jeg prøver at smide det her til at starte med, da jeg ikke er sikker på om det er et PHP eller JS problem. :)

Jeg har et problem, jeg bruger et style switch "system" jeg fandt på nettet, som ser sådan ud:

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);



Når jeg vil skifte det bruger jeg:
        <p><a href="#" onclick="setActiveStyleSheet('default'); return false;">S&aelig;t design til grøn/hvid.</a><br />
        <a href="#" onclick="setActiveStyleSheet('black'); return false;">S&aelig;t design til rød/sort.</a> </p>


Men når dette køres i IE, sker der en fejl, når jeg skifter til et andet skin, beholder den delvist de gamle farver, og skifter til de nye.

Som det kan sees her:
http://i235.photobucket.com/albums/ee316/Danierux/Untitled-1-1.jpg

Jeg er hel blank med hvad det kan være..


Siden kan forresten findes her: leg.moesgaard.be

Tak! :)
Avatar billede danieru Nybegynder
14. oktober 2008 - 17:31 #1
(Smidt ind i PHP, da jeg tror at det er en fejl i min egen kode, frem for switcheren. *g*)
Avatar billede danieru Nybegynder
14. oktober 2008 - 17:38 #2
(exp mangler virkelig en edit funktion, oh well.)
I skriver selvf. bare hvis I har mistanke om at det kunne være andre filer, så som CSS eller noget, som I vil se, alt for at det her skidt vil virke, hehe.
Avatar billede dkfire Nybegynder
14. oktober 2008 - 19:04 #3
Og dette spørgsmål har så intet med php at gøre. Det ligner ren javascript. Du vil derfor få langt mere hjælp vil at stille spørgsmålet i javascript kategorien.
Avatar billede danieru Nybegynder
14. oktober 2008 - 19:16 #4
Yeah, jeg regnede nok med det, prøver at smide den over i javascript, og ser om de kan svare. :)
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

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