# stylesheet per javascript tauschen



## 1stMagic (3. September 2008)

hallo.

ich wollte mein stylesheet onclick tauschen:

<script type="text/javascript">
<!--
function wechsle() {
<link rel="stylesheet" type="text/css" href="stylesheet2.css" />
}
//-->
</script> 

<a href="#" onclick="wechsle()">wechsle</a>

funktioniert aber net. geht das vom prinzip überhaupt html per javascript einfügen. oder was sit die sinnvollste lösung für so etwas?

danke im vorraus


----------



## Maik (3. September 2008)

Hi,

schau dir mal CSS-Styleswitcher mit PHP an.

Und achte in deinen Beiträgen bitte auf die Groß- und Kleinschreibung, wie in der Netiquette (Nr.15) erwünscht, vielen Dank.

mfg Maik


----------



## 1stMagic (3. September 2008)

Groß-Kleinschreibung im Internet....überflüssig (Interpunktion wäre hier tausend mal wichtiger), aber wenn's die Netiquette erfordert gut...

Danke für die schnelle Lösung. Aber das ganze muss doch onclick ausgeführt werden, dann brauche ich doch auf jeden Fall auch js, oder?

greetings


----------



## Gumbo (3. September 2008)

Du könntest die URL austauschen, beispielsweise:
	
	
	



```
function setStylesheet(src) {
	var linkElems = document.getElementsByTagName("link");
	for (var i=0; i<linkElems.length; i++) {
		if (linkElems[i].rel == "stylesheet") {
			linkElems[i].src = src;
			break;
		}
	}
}
setStylesheet("stylesheet2.css");
```


----------



## Maik (3. September 2008)

Siehst du hier einen JS-Codeschnipsel?


```
<?php
    $refresh=false;
    if(isset($_POST['styleswitcher'])) {
        if ($_POST['style']=="feuer"){
            $style="feuer.css";
        }
        elseif ($_POST['style']=="wasser"){
            $style="wasser.css";
        }
        elseif ($_POST['style']=="erde"){
            $style="erde.css";
        }
        elseif ($_POST['style']=="luft"){
            $style="luft.css";
        }
        else{
            $style=feuer.css;
        }
        setcookie('style', $style, time()+365*24*3600, "/");
        $refresh=true;
    }
?>
<html>
 <head>
  <title>Styleswitcher mit PHP</title>
  <?php
    if($refresh) {
        echo '<meta http-equiv="refresh" content="0; URL='.$_SERVER['PHP_SELF'].'">';
    }
    if(isset($_COOKIE['style'])) {
            echo '<link rel="stylesheet" type="text/css" href="css/'.$_COOKIE['style'].'">';
    }
    else {
        echo '<link rel="stylesheet" type="text/css" href="css/feuer.css">';
    }
  ?>
 </head>
 <body>
  <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="POST">
   <select name="style" size="1">
    <option value="feuer">Feuer-Style</option>
    <option value="wasser">Wasser-Style</option>
    <option value="erde">Erd-Style</option>
    <option value="luft">Unsichtbarer Style</option>
    <option value="kein">Kein Style</option>
   </select><br>
   <input type="submit" name="styleswitcher" value="Switch">
  </form>
  <p>Bitte auf "Switch" klicken!</p>
 </body>
</html>
```
mfg Maik


----------



## 1stMagic (3. September 2008)

ok, danke für die schnelle Antwort. Werd's mal ausprobieren...!

Thx!


----------



## 1stMagic (3. September 2008)

klappt schon mal. echt gut

jetzt will möchte ich das stylesheet aber beim Klick auf den gleichen Button zurück wechseln:


```
function setStylesheet(href) {
	var linkElems = document.getElementsByTagName("link");
	for (var i=0; i<linkElems.length; i++) {
		if (linkElems[i].rel == "stylesheet") {
			linkElems[i].href = href;
			break;
		}
	}
}
if (linkElems.href == 'stylesheet.css') {
	setStylesheet("stylesheet2css");
}
else {
	setStylesheet("stylesheet.css");
}
```

geht aber leider nicht....:-(
und kann man trotzdem im js auch php einfügen (zB. wenn der pfad zum stylesheet aus einer variablen besteht?)?

thx im Vorraus


----------

