stylesheet per javascript tauschen

1stMagic

Grünschnabel
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
 
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
 
Du könntest die URL austauschen, beispielsweise:
Code:
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");
 
Siehst du hier einen JS-Codeschnipsel?

PHP:
<?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
 
klappt schon mal. echt gut

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

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

Neue Beiträge

Zurück