zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Javascript nach Änderung des StyleSheets?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 13.12.2007, 12:32
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 08.12.2007
Beiträge: 15
Sven-A befindet sich auf einem aufstrebenden Ast
Standard Javascript nach Änderung des StyleSheets?

Hallo!

Gibt es eine Möglichkeit nach der Änderung eines Stylesheets ein Javascript Funktion aufzurufen?
(Ich habe mit <link> ein "stylesheet" und ein "alternate stylesheet" definiert.)

Gruß
Sven
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 13.12.2007, 20:28
Benutzerbild von Timo
table-layout: none;
XHTMLforum-Kenner
 
Registriert seit: 11.11.2006
Beiträge: 5.345
Timo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein Lichtblick
Standard

Auch beim 3. lesen versteh ich die Frage nicht...
__________________
Um weitere Erklärungen eingeblendet zu bekommen, drücken Sie bitte die Tastenkombination Alt + F4
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 13.12.2007, 21:18
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 08.12.2007
Beiträge: 15
Sven-A befindet sich auf einem aufstrebenden Ast
Standard

Also:

Ich habe zwei <link> Angaben:
<link rel="stylesheet" title="Standard" href="css/default.css" type="text/css" media="screen" />
<link rel="alternate stylesheet" title="Style1" href="css/style1.css" type="text/css" media="screen" />

Darüber definiere ich zwei unterschiedliche Stylesheets für die gleiche Seite, zwischen welchen ich wählen kann (im Firefox z.B. mit Ansicht->Webseite Stil).

Nun würde ich gerne, wenn der Benutzer den Style ändern, eine Javascript-Funktion ausführen. Beim Laden der Seite geht dies ja mit "onload", gibt es etwas ähnliches beim Wechseln des Stylesheets, oder kennt jemand einen Trick/Hack, der ähnliches tut?

(Ich hoffe dies ist jetzt klarer...)
Mit Zitat antworten
  #4 (permalink)  
Alt 13.12.2007, 21:23
Benutzerbild von Timo
table-layout: none;
XHTMLforum-Kenner
 
Registriert seit: 11.11.2006
Beiträge: 5.345
Timo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein Lichtblick
Standard

Zitat:
Zitat von Sven-A Beitrag anzeigen
Also:

Ich habe zwei <link> Angaben:
<link rel="stylesheet" title="Standard" href="css/default.css" type="text/css" media="screen" />
<link rel="alternate stylesheet" title="Style1" href="css/style1.css" type="text/css" media="screen" />

Darüber definiere ich zwei unterschiedliche Stylesheets für die gleiche Seite, zwischen welchen ich wählen kann (im Firefox z.B. mit Ansicht->Webseite Stil).

Nun würde ich gerne, wenn der Benutzer den Style ändern, eine Javascript-Funktion ausführen. Beim Laden der Seite geht dies ja mit "onload", gibt es etwas ähnliches beim Wechseln des Stylesheets, oder kennt jemand einen Trick/Hack, der ähnliches tut?

(Ich hoffe dies ist jetzt klarer...)
Klarer ist es, aber ich kann mir nicht vorstellen das der Browser irgend eine Info an die Seite schickt das er das Stylesheet gewächselt hat.
__________________
Um weitere Erklärungen eingeblendet zu bekommen, drücken Sie bitte die Tastenkombination Alt + F4
Mit Zitat antworten
  #5 (permalink)  
Alt 19.12.2007, 12:08
Neuer Benutzer
neuer user
 
Registriert seit: 11.12.2007
Beiträge: 17
andref befindet sich auf einem aufstrebenden Ast
Standard

Falls du einen Style-Switcher bauen willst, schau dir mal das an: Cascading Style Sheets { Artikel : Einfacher Style-Sheet-Wechsler }

Hierbei vielleicht auch für dich interessant: Da das "aktive" Style per Cookie gespeichert werden soll, musste auch herausgefunden werden, welches vom User gewählte Style-Sheet ist. Ist zwar nicht ganz das, was du brauchst, aber evtl. hilft es dir.
Mit Zitat antworten
  #6 (permalink)  
Alt 26.12.2007, 15:32
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 08.12.2007
Beiträge: 15
Sven-A befindet sich auf einem aufstrebenden Ast
Standard

Danke, aber einen "Style-Switcher" hab' ich schon. Und dort kann ich natürlich auch meinen Aufruf unterbringen...
Aber, da der Stil auch über das Menü (zumindest des Firefox) geändert werden kann, hätte ich dies auch gerne noch abgefangen!
Mit Zitat antworten
  #7 (permalink)  
Alt 26.12.2007, 21:33
Benutzer
neuer user
 
Registriert seit: 26.01.2007
Beiträge: 87
trixta befindet sich auf einem aufstrebenden Ast
Standard

Du kannst mit getComputedStyle den aktuellen "berechneten" Style auslesen. Auf JavaScript - Get Styles findest du hierzu ein crossbrowser-taugliches Script. Zusammen mit setInterval, kannst du dir dein eigenes event basteln. Bitte beachte, dabei dass der User auch selber ohne deine Stile zu nutzen einen eigenen Stil nutzen könnte. Und da du das im interval läuft, sollte es auch inreichend performant sein.
Mit Zitat antworten
  #8 (permalink)  
Alt 27.12.2007, 18:42
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 27.06.2006
Beiträge: 134
cybaer befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Sven-A Beitrag anzeigen
Danke, aber einen "Style-Switcher" hab' ich schon.
Da solltest Du ansetzen, denn ...

Zitat:
Aber, da der Stil auch über das Menü (zumindest des Firefox) geändert werden kann, hätte ich dies auch gerne noch abgefangen!
... IMHO ist die Umschaltung via Menü ohnehin halbgar und leider haben die Browser mit KHTML-Engine ggf. einen Bug und können mit Alternativen Sheets eh nicht umgehen.

Also lieber eine rein eigenes StyleSheet-Menü, wechseln der Stile über das HREF-Attribut des (normalen) LINK-Elements für das externe Sheet und gut ist.
__________________
Gruß, Cybaer
Mit Zitat antworten
  #9 (permalink)  
Alt 27.12.2007, 19:30
Benutzer
neuer user
 
Registriert seit: 26.01.2007
Beiträge: 87
trixta befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cybaer Beitrag anzeigen
... IMHO ist die Umschaltung via Menü ohnehin halbgar und leider haben die Browser mit KHTML-Engine ggf. einen Bug und können mit Alternativen Sheets eh nicht umgehen.
Er hat doch schon einen Styleswitcher mit dem buggy Browser umgehen können. Das Alternate Stylesheet ist ein Standard des W3C. Es mit der Begründung nicht zu verwenden, weil einige Browser damit nix anfangen können, halte ich in dem Zusammenhang für unhaltbar.

@Sven-A

Was mir noch eingefallen ist: Aktive Stylesheets haben die DOM-Eigenschaft disabled =(==) flase / Inaktive dagegen diabeld =(==) true. Hiermit kannst du sehr einfach abfragen, welches Stylesheet aktiv ist. siehe hierzu: A List Apart: Articles: Alternative Style: Working With Alternate Style Sheets
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 28.12.2007, 09:53
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 27.06.2006
Beiträge: 134
cybaer befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von trixta Beitrag anzeigen
Er hat doch schon einen Styleswitcher mit dem buggy Browser umgehen können.
Hat er? Ich denke, er hat den Styleswitcher nur nicht auf hinreichend genug Browsern getestet.

Zitat:
Das Alternate Stylesheet ist ein Standard des W3C. Es mit der Begründung nicht zu verwenden, weil einige Browser damit nix anfangen können, halte ich in dem Zusammenhang für unhaltbar.
Deine Meinung - ich habe eine andere.

Ein Standard, der fehlerhaft unterstützt wird, ist schöne Theorie, Websites sind i.A. hingegen für die Praxis bestimmt.

BTW: Es gibt auch hinreichend standardisierte Elemente, die von überhaupt keinem Browser unterstützt werden. Mitunter definiert man dann halt einfach einen neuen Standard, wo diese Dinge dann schlicht fehlen (wie z.B. geschehen mit CSS 2.0->2.1).

Wichtig ist halt immer, was hinten rauskommt!


Zitat:
Was mir noch eingefallen ist: Aktive Stylesheets haben die DOM-Eigenschaft disabled =(==) flase / Inaktive dagegen diabeld =(==) true. Hiermit kannst du sehr einfach abfragen, welches Stylesheet aktiv ist. siehe hierzu: A List Apart: Articles: Alternative Style: Working With Alternate Style Sheets
Ja, und genau hier schlägt der Bug in Konqueror- und Safari-Browsern zu! Änderungen in disabled haben null Wirkung und alternative Stylesheets werden so gesehen, als wenn es reguläre wären. Das ist halt der Weg, über den alternative Stylesheets vom Browser behandelt werden - wenn er es denn kann.

Der Artikel geht leider, wie viele andere Veröffentlichungen halt auch, von der Theorie aus. Oft werden auch nur IE & FF beachtet (und ggf. mit Workarounds bedacht), während die anderen zahlreichen Browser ignoriert werden.

In diesem Fall jedoch ist es, wie gesagt, IMHO ohnehin müßig: Das "alternative Stylesheet"-Gehabe ist IMHO unbrauchbar in die Browser implementiert (sofern überhaupt), da nicht praxisgerecht. Man kommt hier in der Praxis ohnehin um JS nicht herum, da u.a. die Einstellung nicht von einem Dokument aufs nächste übertragen wird. Und da man praktischerweise um JS eh nicht herumkommt, kann man es dann auch gleich so implementieren, daß es auf allen Browsern funktioniert. So what?
__________________
Gruß, Cybaer

Geändert von cybaer (28.12.2007 um 09:57 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Erkennen ob JavaScript deaktiviert ist und anderen Inhalt anzeigen Ares Javascript & Ajax 7 02.02.2011 13:45
automatische Aktualisierung bei Änderung des Browserfensters made.by.kaufmann Javascript & Ajax 2 12.08.2009 16:04
Problem mit z-index Unearth CSS 10 23.04.2009 07:49
Änderung des Thread-Titels ohne Auswirkung img Fragen, Konstruktive Kritik, Lob / Bekanntmachungen 11 16.04.2009 00:24
Ratschläge bei Publizierung eines fertigen Layouts gesucht Black Fladder CSS 55 05.09.2004 15:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:44 Uhr.