• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Styleswitcher funktionslos

BashGrinder

Neues Mitglied
Nabend

Also ich verstehe das nicht..habe einen Styleswitcher nach Lehrbuch gebastelt, aber egal, was ich mache, der funzt nicht...

Index.php:

Code:
<link   href="/templates/template/css/template.css" rel="stylesheet" type="text/css" title="default"  />
  <link   href="/templates/template/css/template2.css" rel="stylesheet2" type="text/css" title="template2"  />
  <script type="text/javascript" src="/templates/template/switcher.js"></script>


Und der Link Aufruf:
Code:
  <a href="/" onclick="setActiveStyleSheet('template2'); return false;">Orange</a>
    <a href="/" onclick="setActiveStyleSheet('default'); return false;">Default</a>
Noch das switch.js:


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


Ist bestimmt schon das 5. Script welches ich mir aus den Weiten des Netzes zurecht gesucht habe, aber keines funktionierte bisher...
 
Werbung:
Ich hab mich schon gewundert, was dieses Topic im Bereich CSS zu suchen hat und richtig, das ist eine Javascript Frage. Es wäre wohl besser gewesen sie dort zu platzieren.

Also ich verstehe das nicht..habe einen Styleswitcher nach Lehrbuch gebastelt, aber egal, was ich mache, der funzt nicht...
"nicht funzen" ist natürlich eine tolle Fehlerbeschreibung. Weißt du denn wo du die Fehlermeldungen findest?
 
Werbung:
Also ich glaube nicht das der Fehler im Javascipt liegt, sondern irgendwo verborgen ist.

Also: möchte ich auf das alternative Stylesheet umschalten, erscheint die Website so, als wäre kein CSS hinterlegt -also weiss und unformatiert. Alle Pfade sind korrekt und ich finde keinen Fehler...

EDIT: Das PHP Script funktioniert erst gar nicht - die Wbesite wird gleich praktisch ohne Design angezeigt..ausserdem wollte ich es nicht so kompliziert machen...
 
Zuletzt bearbeitet:
Weil Du keine richtige Frage gestellt hast?^^

Als Fehlermeldung shee ich doch, dass die Website unformatiert und rein weiss ausgegeben wird, und wo soll ich bei CSS/Javascript ne Fehlermeldung herholen, wenn das Script funktioniert, nur der Aufruf der CSS Datei vermutlich nicht?
 
Werbung:
Wenn Du so gut im vermuten bist, warum stellst Du dann hier eine Frage?
Hier sind Experten, die Dir helfen können, aber nur, wenn Du alles, was sie wissen müssen, zusammenträgst. Und wenn Du gefragt wirst, wie die Fehlermeldung in der Fehlerkonsole lautet, dann darfst Du ruhig zugeben, wenn Du nicht weißt, was die Fehlerkonsole ist, aber die Fehlermeldung brauchen die Experten trotzdem.

Niemand frisst Dich. Aber wenn Du antworten willst, dann musst Du lesen, was man von Dir will! Und wenn Du glaubst, dass das nichts bringt, dann bist Du sicher schlauer als die anderen...
 
Werbung:
Die kannst auch kopieren - und du kannst da sogar draufklicken, dann siehst du die Stelle im Quelltext wo der Fehler auftrat.
Der Fehler hat aber nichts mit dem code da oben zu tun.
 
Ich habe den Fehler jetzt schon 3 mal beschrieben.
Aber bis vorhin die Fehlermeldung, nach der gefragt wurde, noch kein einziges Mal beschrieben.

Ein Tipp für Hlfesuchende: Gebt immer einen Link zu Eurer Seite, auf der der Fehler auftritt, dann kann jeder selber nachsehen und muss nich jede notwendige Info aus der Nase ziehen. Außerdem betrachten die meisten hier eine Website mit diversen Developertools, die man nunmal auf Grafiken oder Code-Schnipsel nicht anwenden kann.

Wer gute Hilfe will, stellt gute Infos zur Verfügung. Ganz oben an steht dabei ein Link zur Seite, dicht gefolgt von einer guten Fehlerbeschreibung und einer Beschreibung, was erreicht werden soll. Das noch in lesbarem Deutsch ohne grobe Rechtschreibfehler (das war jetzt nicht auf dich bezogen, nervt mich aber allgemein immer wieder wenn leute ohne punkt und komme und ohne groß und klein schreibung und mit vielen leerzeichen an stellen wo sie nicht hingehören einfach drauflos schreiben am besten noch ohne absätze usw), dann funktioniert das auch mit der Hilfe!

Liebe Grüße,
-Efchen
 
Werbung:
Ich würde gerne einen Link geben, aber da ich nochkeine live Freigabe habe, muss ich vorerst auf lokaler Ebene arbeiten...

EDIT: Also ich habe keine Ahnung warum, aber aufeinma geht es. Hier der Code, den ich im Header eingesetzt habe:
Code:
<link rel="stylesheet" title="default" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/css/template.css" type="text/css" />
<link rel="stylesheet" title="template2" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/css/template2.css" type="text/css" />
 
Zuletzt bearbeitet:
Ich würde gerne einen Link geben, aber da ich nochkeine live Freigabe habe, muss ich vorerst auf lokaler Ebene arbeiten...
In dem Fall bietet sich an, ein gekürztes Beispiel irgendwo bei einem kostenlosen Hoster abzulegen. Wie auch immer, deine Bereitschaft dir helfen zu lassen war nicht besonders hoch.
 
Zurück
Oben