Avatar billede danieru Nybegynder
14. oktober 2008 - 19:19 Der er 6 kommentarer og
1 løsning

Mærkeligt 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 w13 Novice
14. oktober 2008 - 19:53 #1
Når jeg ser på billedet, hvad er så forkert? Jeg ved jo ikke, hvordan dit design skal se ud. :)
Avatar billede danieru Nybegynder
14. oktober 2008 - 20:04 #2
Hov, det glemte jeg helt. :$
Det er kun når man skifter fra et design til et andet, så efterlader den delvist farverne fra det tidligere valgte design, i dette tilfælde har den ladet det sorte fra den tidligere baggrund blive, den forsvinder dog hvis man enten refresher vinduet, eller gør det i "lille vindue" og tilbage til maksimeret tilstand..
Avatar billede w13 Novice
14. oktober 2008 - 20:07 #3
Det lyder mest som en fejl i browseren. Hvilken version af IE bruger du?
Avatar billede danieru Nybegynder
14. oktober 2008 - 20:10 #4
IE7.

Og den virker forresten fint i firefox, bare ikke i IE. :)
Avatar billede olebole Juniormester
14. oktober 2008 - 23:01 #5
<ole>

Det beror på en bug i FF, at scriptet virker. Det bør ikke virke at sætte et link-element til disabled  =)

/mvh
</bole>
Avatar billede olebole Juniormester
14. oktober 2008 - 23:06 #6
- og så er scriptet forøvrigt ikke kompatibelt med XHTML. Ikke at det betyder noget, da din kode jo alligevel altid vil parses som HTML-sovs, når du server dokumentet som 'text/html'  =)

Du bør nok også prøve at kikke i kildekoden i din browser. Du inkluderer vist et dokument forkert. I hvertfald har du flere DTD'er, html-, head- og body-tags - og det er en absolut no-go!
Avatar billede danieru Nybegynder
29. december 2008 - 11:13 #7
Endte op med en anden løsning.
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