kostenloser Webspace werbefrei: lima-city


css switch+javascript

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    illtill

    illtill hat kostenlosen Webspace.

    hi ich will ne css datei per javascript ?ndern lassen f?r ne schulseite aber auf dem server ist kein php installiert hab hier ein script aber das geht nicht
    zeigt an das newstyle nicht definiert ist

    <script language="javascript">
    function fixDate(date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0) date.setTime(date.getTime() - skew);
    }
    function setCookie(name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    document.cookie = curCookie;
    }
    function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf(prefix);
    if (begin == -1) return null;
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) end = dc.length;
    return unescape(dc.substring(begin + prefix.length, end));
    }

    var skin = getCookie("skins");
    if(!skin){
    var style = 1;
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    setCookie("skins", skin, now);
    }
    if(skin == 1){
    document.writeln("<link rel='stylesheet' href='skin1.css'>");
    }
    if(skin == 2){
    document.writeln("<link rel='stylesheet' href='skin2.css'>");
    }
    if(skin == 3){
    document.writeln("<link rel='stylesheet' href='skin3.css'>");
    }
    function changeskin(newskin){
    setCookie("skins", newstyle, now);
    window.location.reload( false );
    }
    </script>

    <a href="javascript:changeskin(1)">Skin1</a>
    <a href="javascript:changeskin(2)">Skin2</a>
    <a href="javascript:changeskin(3)">Skin3</a>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m*2

    newstyle kommt ja auch nur einmal im ganzen Quelltext vor:

    function changeskin(newskin)
    {
    setCookie("skins", newstyle, now);
    window.location.reload( false );
    }

    Muss da stattdessen vielleicht newskin stehen?
  4. Autor dieses Themas

    illtill

    illtill hat kostenlosen Webspace.

    thx das geht so hab aber dann noch ein prob hab mit tabellen die seite gemacht un die hintergrundgrafiken in ner externen css datei per class definiert aber ich habe in der mitte einen iframe wie kriege ich hin dass sich auch da die css datei ver?ndert?
    thx im vorraus
  5. m*2

    Das wird schwierig. Du kannst zwar ?ber JavaScript aus dem Iframe heraus auf den Parent Frame zugreifen (oder ungekehrt), aber die CSS Datei kannst du so nicht ?ndern, ohne einen Reload zu erzwingen.

    Wenn die verschiedenen Skins nicht allzu komplex sind, k?nntest du auch mit ein bis zwei for-Schleifen arbeiten.
    Beispiel:

    =====------=====
    <span style="color:red" name="skin">jo</span>
    <span style="color:red" name="skin">ne></span>
    <span style="color:red" name="skin">ne></span>
    <script language="JavaScript" type="text/javascript">
    <!--
    function skin_aendern()
    {
    for(var i=0; i<window.document.getElementsByName["skin"].length;i++ )
    {
    window.document.getElementsByName["skin"].style.color=window.document.getElementsByName["skin"].style.color="green";
    }
    }
    //-->
    </script>
    <br /><a href="javascript:skin_aendern();">Skin wechseln</a>
    =====------=====

    Sollte ?ber den Link die Texte dann gr?n f?rben (bin mir nur nicht sicher, ob das mit length funktioniert um zu checken wie gro? der Array ist).
    Ist erstmal ein Beispiel; m?sste nat?rlich noch kr?ftig ausgebaut werden.
  6. Autor dieses Themas

    illtill

    illtill hat kostenlosen Webspace.

    thx erstmal naja ich bin nicht gerade javascript pro un kann das nicht alleine umschreiben zeigt mir n fehler an bei window.document.getElementsByName["skin"].length;i++
    zeigt an das das null ist
    also die skins sind schon komplex da ich die ganzen hintergrundbilder der tabllen definiert habe in einer css datei aber das ist nicht das prob im iframe muss eigentlich nut die hintergrundfarbe ge?ndert werden (eig noch die scrollbar aber geht sowieso nur mit ie und dann lass ich das halt weg)
    thx
  7. m*2

    OK, dann funz das mit length doch nicht wegen der Array Gr??e.

    Die Hintergrundfarbe ?nderst du so:

    Im Iframe:
    <body style="background-color: #ffffff" id="bla">


    JavaScript:
    window.document.getElementById["bla"].style.backgroundColor="#ff0000";

    Musst nur noch richtige Farbwerte einsetzen!
  8. Autor dieses Themas

    illtill

    illtill hat kostenlosen Webspace.

    wie baue ich das in einen link ein? un wenn in dem link schon
    <a href="javascript:changeskin(1)">Skin1</a> (s.h. skript oben)
    steht? die hintergrundbilder werden ge?ndert nur im iframe muss die hintergrundfarbe ge?ndert werden in iframe sind keine hintergrundbilder
    thx im vorraus
  9. m*2

    Dieser Link steht nicht im iframe, oder?
  10. Autor dieses Themas

    illtill

    illtill hat kostenlosen Webspace.

    hi hab schnell mit paint^^ bild (http://illtill.milten.lima-city.de/page.jpg) gemalt also links is men? un in der mitte der iframe wenn ich jetzt die grauen hintergrundgrafiken per css geladen werden wenn man auf den link geklickt hat dann wechselt sich die hintergrundgrafik aber die hintergrundfarbe (auf bild jetzt mal rot weil vorher z.b die grafiken au?erhalb des iframes rot waren) im iframe nicht ich will jetzt dass sich die hintergrundfarbe z.b auf dem bild in grau ?ndert wenn ich auf den link mit javascript:changeskin bla dr?cke die css datei gewechselt wird was ja geht (dank mf2:biggrin:) und die hintergrundfarbe des iframes entsprechend der b(ack)g(round)bilda(au?erhalb des iframes) wechselt

    thx f?r all die hilfe
  11. m*2

    ?ndere den Code mal so:

    if(skin == 1){
    document.writeln("<link rel='stylesheet' href='skin1.css'>");
    window.frames[0].document.getElementById["body"].style.backgroundColor="#ff0000";
    }

    (Entsprechend f?r die anderen)

    Und im iFrame dann so ?ndern:

    <body id="body">

    (Das Attribut id ist wichtig)
  12. Autor dieses Themas

    illtill

    illtill hat kostenlosen Webspace.

    sorry aber das geht immer noch nicht hab alles so gemacht aber die farbe im iframe ?ndert sich nicht liegt das vll daran dass es n iframe ist un kein "normaler" frame? aber trotzdem thx f?r die arbeit
  13. m*2

    Was sagt denn alert(window.frames) au?erhalb des fensters?
  14. Autor dieses Themas

    illtill

    illtill hat kostenlosen Webspace.

    hat mir bei meinem pc gar kein fehler angezeigt aber bei nem freund dann den

    window.frames[0].document ist null oder kein objekt
    hier ein ausschnitt:

    }

    if(skin == 1){
    document.writeln("<link rel='stylesheet' href='styles/rot.css'>");
    window.frames[0].document.getElementById["body"].style.backgroundColor="#ff0000";
    }
  15. m*2

    Der code wird NICHT im iFrame ausgef?hrt, oder?

    probier mal:

    <iframe id="hm" ... >

    </iframe


    JS Code:

    alert(window.document.getElementById("hm"));
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!