Avatar billede lsolesen Nybegynder
09. september 2003 - 11:57 Der er 1 løsning

Styleswitcher virker ikke i Mozilla men godt i IE

Jeg har fundet en rigtig god stylesheet swithcer på:

http://www.alistapart.com/stories/alternate/

Jeg kan imidlertid ikke rigtig få den til at fungere i Mozilla. Den virker godt nok i IE.

Se selv på www.vih.dk/

STYLESWITCHER.JS

// Styleswitcher skrevet af A List Apart
// Fundet på http://www.alistapart.com/stories/alternate/


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


INDEX.PHP

<!-- Styleswitcher fundet på http://www.alistapart.com/stories/alternate/ -->
<script src="/includes/styleswitcher.js" type="text/javascript"></script>

<link rel="alternate stylesheet" href="/css/lilletekst.css" type="text/css" title="Lilletekst" media="screen"  />
<link rel="alternate stylesheet" href="/css/stortekst.css" type="text/css" title="Stortekst" media="screen" />

<link rel="stylesheet" href="/css/standard.css" type="text/css" title="Standard" media="screen" />

<link rel="stylesheet" href="/css/print.css" type="text/css" media="print" />
Avatar billede lsolesen Nybegynder
09. september 2003 - 12:48 #1
Nu virker den - skulle lige bytte om på stylesheets rækkefølgen!
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