Antworten auf deine Fragen:
Neues Thema erstellen

JS Code erklärung

Janine17

Nicht mehr ganz neu hier

Hallo ihr lieben,

ich bin mir nicht sicher ob ich es richtig verstanden habe, ich hoffe ihr helft mir.

<link rel="stylesheet" type="text/css" href="test.css" title="standard" />
<link rel="alternate stylesheet" type="text/css" href="test2.css" title="wechsel" />

das sind meine verweise und nun hab ich ne Frage zu JS.

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

Meine Fragen betreffen die rot markierten Sachen.
Gebe ich bei title=standard ein? Bei link muss nix hin oder? weil sich das auf denn kompletten link bezieht? Kommt bei rel dann stylesheet? Kommt bei style dann css hin oder was?

Ich weiß es ist sicher richtig simpel, aber ich check es echt nicht.
 
Zuletzt bearbeitet:

Zampano_

Nicht mehr ganz neu hier

AW: JS Code erklärung

So wie ich die Funktion verstehe soll die dir das Stylesheet austauschen.
Ändern musst du dafür daran gar nichts.
Beim Aufruf der Funktion musst du den title des Stylesheets übergeben, welches du aktivieren möchtest. Alle anderen eingebnundenen Stylesheets werden deaktiviert.

Wenn du also in deinem Fall das 2te aktivieren möchtest ruftst du einfach

PHP:
setActiveStyleSheet("wechsel");
auf.

Möchtest du danach das erste wieder haben rufst du
PHP:
setActiveStyleSheet("standard");
auf.

(das sind natürlich ein JS-Aufrufe! ;) )
 
Zuletzt bearbeitet:

Janine17

Nicht mehr ganz neu hier

AW: JS Code erklärung

hmm ich kann dir ja mal den kompletten code posten den ich gefunden habe um sowas zu wechseln.

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

und ich muss nur bei title was eintragen oder wie? Weil das ja so ne lange funktion und ich dachte es muss bei style, rel etc was rein?!
 

Zampano_

Nicht mehr ganz neu hier

AW: JS Code erklärung

Das title ist eine Variable die du mit einem "beliebeigen" Wert beim Aufruf der Funktion füllen kannst (s.o.). Beliebig heißt in dem Fall halt der title eines eingebundenen CSS-Links. An der Funktion selber musst du dafür nichts ändern!

Was möchtste denn überhaupt machen?
 

Janine17

Nicht mehr ganz neu hier

AW: JS Code erklärung

aso, weil ne freundin meinte title kann ich weglassen, aber irgendwas dachte ich mir muss ich ja angeben das er weiß das er die css dateien wechseln soll. ja ich will zwei css dateien einbinden in dem der nutzer entscheiden kann welche er aufrufen möchte.

Aso: na ja und mit dem Cookie will ich das er das festlegt also sich merkt....:)
Also mir wurde nun gesagt es kann alles so bleiben. Trotzdessen klappt es bei mir nicht.

Ich hab jetzt wie oben das script und die beiden links und im html hab ich:
<a href="#" onclick="setActiveStyleSheet('standard'); return false;">change style to standard</a>

<a href="#" onclick="setActiveStyleSheet('test2'); return false;">change style to test2</a>
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: JS Code erklärung

Hi,

hast du dir mal die Fehlermeldungen in der Fehlerkonsole angeschaut? Wird da was aufgeführt? So erkennt man den Fehler meistens am schnellsten! ;)

Schöne Grüße aus dem Sauerland!
Chriss
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.615
Beiträge
1.538.352
Mitglieder
67.528
Neuestes Mitglied
Links Stream es
Oben