Thomas: Iframe und Stylesheets

Hallo zusammen!

Erstmal vorweg: Ich möchte bitte keine Diskussion über die für und wieder von Frames/Iframes starten. Die gibt es zur genüge. ;) Bezüglich meines eigentlichen Problems habe ich vorher alle möglich Seiten durchforstet, bin aber nicht fündig geworden.

Weiter im Text: Ich habe eine Webseite "zusammengewurschtelt", der Maincontent wird in einem Iframe aufgerufen. Sowohl die "eigentliche" Seite (mit Navigation, Header etc.) als auch die Content-Seiten werden mit CSS-formatiert. Bis dahin kein Problem.

Nun habe ich einen Styleswitcher (vgl. http://www.alistapart.com/articles/alternate/) hinzugefügt. Auch das funktioniert für die eigentliche Seite ohne Probleme. Wie aber kann ich es anstellen, dass die alternativen Stylesheets auch für die Seite im Iframe übernommen werden? Wahrscheinlich bedarf es nur einiger Änderungen in den JavaScript-Funktionen, aber da bin ich noch nicht so fit. Oder es liegt einfach ein Denkfehler vor...

Kann mir hier vielleicht jemand weiterhelfen?

Grüße,

Thomas

  1. Hi,

    Wie aber kann ich es anstellen, dass die alternativen Stylesheets auch für die Seite im Iframe übernommen werden?

    ziemlich genau so, wie Du es anstellen würdest, wenn Dein <iframe> ein anderes Fenster wäre. Was vor allem daran liegt, dass Dein <iframe> ein anderes Fenster _ist_. Daher auch die vielen Diskussionen über das Wider von <frame>s und <iframe>s (über das Für gibt es nur wenig zu sagen).

    Wahrscheinlich bedarf es nur einiger Änderungen in den JavaScript-Funktionen, aber da bin ich noch nicht so fit.

    Warum stellst Du dann Deine Frage im Themenbereich HTML?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. ziemlich genau so, wie Du es anstellen würdest, wenn Dein <iframe> ein anderes Fenster wäre.

      d.h.?

      Warum stellst Du dann Deine Frage im Themenbereich HTML?

      weil ich mir eben nicht sicher bin, ob es dort reingehört. ich weiss ja nicht genau, ob etwas an der funktion verändert werden müsste, und das reicht dann.

      1. Hi,

        ziemlich genau so, wie Du es anstellen würdest, wenn Dein <iframe> ein anderes Fenster wäre.
        d.h.?

        stelle Dir vor, der Inhalt des <iframe> befände sich in einem separat geöffneten Fenster.

        Warum stellst Du dann Deine Frage im Themenbereich HTML?
        weil ich mir eben nicht sicher bin, ob es dort reingehört. ich weiss ja nicht genau, ob etwas an der funktion verändert werden müsste, und das reicht dann.

        Die Funktion wurde ganz sicher nicht in HTML geschrieben, da HTML keine Programmiersprache ist. Welcher Themenbereich wäre also angebracht?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          ziemlich genau so, wie Du es anstellen würdest, wenn Dein <iframe> ein anderes Fenster wäre.
          d.h.?

          stelle Dir vor, der Inhalt des <iframe> befände sich in einem separat geöffneten Fenster.

          OK. Mmmmmmmh... Klappt nicht. Scherz. Mir ist schon klar was du meinst. Und mir ist auch klar, das der (I)Frame so funktioniert. Trotzdem komme ich hier nicht weiter. Wie sage ich dem "entfernten" Fenster, auf welches Stylesheet es zugreifen soll? Und muss ich dort im Header dann auch schon alle Stylesheets angeben (preferred, alternate...)? Wohl, aber wie spreche ich diese von ausserhalb an?

          Warum stellst Du dann Deine Frage im Themenbereich HTML?
          weil ich mir eben nicht sicher bin, ob es dort reingehört. ich weiss ja nicht genau, ob etwas an der funktion verändert werden müsste, und das reicht dann.

          Die Funktion wurde ganz sicher nicht in HTML geschrieben, da HTML keine Programmiersprache ist. Welcher Themenbereich wäre also angebracht?

          Naja, aber der Iframe und seine Eigenschaften gehören in den Bereich HTML. Stylesheets sind CSS. Da ich mir nicht sicher war, von welcher Seite das Problem am besten anzugehen sei, wusste ich eben nicht genau, welcher Themenbereich. Aber zu dem Punkt sollte das jetzt auch genügen... Jetzt steht es halt, ob mehr oder weniger sinvoll sei mal dahingestellt, hier. Ich kann es nicht löschen, und nur wegen dieser kleinen Ungenauigkeit ein neues Thema an anderer Stelle zu öffnen ist mit Sicherheit auch unnötig.

          1. [Themenbereich] Ich kann es nicht löschen,

            Thomas,
            Aber ändern. Oh Wunder, siehe Themenbereich und Thema meines Postings. </faq/#Q-20>

            und nur wegen dieser kleinen Ungenauigkeit ein neues Thema an anderer Stelle zu öffnen ist mit Sicherheit auch unnötig.

            Ja! Damit würdest du den Zorn[tm] einiger Forumsteilnehmer auf dich ziehen und als Doppelposter an den Pranger[tm] kommen. </faq/#Q-06c>

            Live long and prosper,
            Gunnar

            --
            „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
        2. stelle Dir vor, der Inhalt des <iframe> befände sich in einem separat geöffneten Fenster.

          Gut. Ich denke, weiter geht es hiermit: http://de.selfhtml.org/javascript/objekte/frames.htm

          Allerdings weiss ich nicht genau, wie ich das jetzt in die Funktionen mit einbinde. Aber ich bin dran... Für Tips bin ich natürlich dankbar.

          Jetzt probiere ich nochmal den Hinweis von Gunnar aus (vielen Dank).

          Grüße,

          Thomas

          Edit: Wunderbar! ;)

          1. stelle Dir vor, der Inhalt des <iframe> befände sich in einem separat geöffneten Fenster.

            Gut. Ich denke, weiter geht es hiermit: http://de.selfhtml.org/javascript/objekte/frames.htm

            Falls es jemanden interessiert: Ich habe jetzt das Javascript (vgl. vorherige Posts) in allen Dokumenten eingebunden und um folgende Funktion ergänzt:

            function switchstyle (title) {
              var a = title;
              setActiveStyleSheet(a);
              parent.Main.setActiveStyleSheet(a);
              return false;
            }

            Die rufe ich jetzt in der index.htm auf, wenn ich die Styles wechseln möchte:

            <select name="selectstyle" onchange="switchstyle(this.value);">
              <option value="green">Green</option>
              <option value="blue">Blue</option>
              <option value="red">Red</option>
              <option value="orange">Orange</option>
            </select>

            Scheint zu funktionieren. Aber mit solchen Aussagen werde ich immer vorsichtiger... ;)

            Grüße,

            Thomas