Marianne: Mit JS Tags in Head schreiben

Hallo

So mancher wird lachen, für mich ist es ein Problem:
Ich möchte mittels Javascript ein paar Anweisungen in den Head einer XHTML-Datei schreiben lassen, inkl. noscript-Bereich.
Hintergrund ist der das ich dem Browser mit aktiviertem bzw. deaktiviertem Javascript unterschiedliche CSS-Dateien zuweisen möchte.

Also in etwa so:

<script type="text/javascript">
XXXX? <link href="high.css" type="text/css" rel="stylesheet" />
</script>);
<noscript>
<link href="low.css" type="text/css" rel="stylesheet" />
</noscript>

Könnte das so funktionieren?
Was schreibe ich für das "XXXX?"?

Danke für Eure Hilfe

Marianne

  1. Moin,

    <script type="text/javascript">
    XXXX? <link href="high.css" type="text/css" rel="stylesheet" />
    </script>);
    <noscript>
    <link href="low.css" type="text/css" rel="stylesheet" />
    </noscript>

    Könnte das so funktionieren?
    Was schreibe ich für das "XXXX?"?

    meinst du evtl. document.wirte ?

    MfG,
      Juan

    1. Moin,

      <script type="text/javascript">
      XXXX? <link href="high.css" type="text/css" rel="stylesheet" />
      </script>);
      <noscript>
      <link href="low.css" type="text/css" rel="stylesheet" />
      </noscript>

      Könnte das so funktionieren?
      Was schreibe ich für das "XXXX?"?

      meinst du evtl. document.wirte ?

      MfG,
        Juan

      Damit habe ich es schon versucht:

      <script type="text/javascript">
      document.write ("<link href='high.css' type='text/css' rel='stylesheet' />);
      </script>

      Scheint aber nicht zu klappen...
      Ich bin noch JS-Anfänger, bitte um Gnade ;-)

      Marianne

      1. Hallo,

        <script type="text/javascript">
        document.write ("<link href='high.css' type='text/css' rel='stylesheet' />);
        </script>

        Scheint aber nicht zu klappen...

        wo hast du den Script-Bereich in deiner HTML-Datei?
        Damit die css-Datei eingebunden wird, muss du es m.W.n. im Head-Bereich angeben...

        MfG,
          Juan

        1. wo hast du den Script-Bereich in deiner HTML-Datei?
          Damit die css-Datei eingebunden wird, muss du es m.W.n. im Head-Bereich angeben...

          Der Script-Bereich ist im Head.

          Mittlerweile habe ich eine Lösung gefunden (hoffe ich ;-)):

          <script type="text/javascript">
          document.write('<link href="high.css" type="text/css" rel="stylesheet" />');
          </script>
          <noscript>
          <link href="low.css" type="text/css" rel="stylesheet" />
          </noscript>

          Marianne

      2. Hallo nochmal,

        Scheint aber nicht zu klappen...
        Ich bin noch JS-Anfänger, bitte um Gnade ;-)

        du solltest dir vielleicht diesen Thread aus dem Archiv durchlesen.
        Da geht es genau um dein Problem...

        MfG,
          Juan

  2. Hallo Marianne.

    Hintergrund ist der das ich dem Browser mit aktiviertem bzw. deaktiviertem Javascript unterschiedliche CSS-Dateien zuweisen möchte.

    Ergänzen sich die beiden Stylesheets oder stellt jedes für sich ein vollständiges Layout?

    Bei ersterem kannst du <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onload@title=beim Laden des Dokumentes> das bereits vorhandene „low.css“ um das „high.css“ ergänzen, in dem du <http://de.selfhtml.org/javascript/objekte/document.htm#create_element@title=ein weiteres link-Element> in den http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#head@title=Kopf  http://de.selfhtml.org/javascript/objekte/node.htm#append_child@title=einhängst.

    Bei zweiterem ist es einfacher. Du suchst dir einfach per http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_tag_name@title=getElementsByTagName alle link-Elemente, und suchst dir entweder per Index oder per Überprüfung eines geeigneten Attributes (hier sicher http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#link@title=href) das gewünschte. Dort ersetzt du einfach den Wert der href-Eigenschaft (und damit des gleichnamigen Attributes) durch die Bezeichnung des neuen Stylesheets (also „high.css“).

    Leider tritt hierbei ein kurzes Flackern beim Laden der Seite auf, da onload wartet, bis das gesamte Dokument geladen wurde.

    Wenn du dagegen im Kopf zuerst die link-Elemente und danach den script-Bereich notierst, kannst du auf onload verzichten, da das script-Element sowieso erst geparst wird, wenn das link-Element gemäß der Reihenfolge im Quelltext schon besteht.

    Einen schönen Donnerstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    mathbr:del.icio.us/ mathbr:w00t/