Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Verschiedene CSS Files anbieten
..mal 'ne ganz blöde frage dazu: gibt es bei Javascript wie bei PHP einen Ablauf von oben nach unten? (bin ein echter JS dummie:-) )
der Style-Link steht ja oberhalb der Funktion...
@wolf.andres: Äh ja, kleiner Fehler im Script... Es wurde kein Style gesetzt wenn kein Cookie vorhanden war. Anbei ist die geänderte Version.
Grüße Sabine
<script language="Javascript">
var a = new Date();
a = new Date(a.getTime() +1000*60*60*24*365);
var styles = new Array();
styles[0] = 'style.css';
styles[1] = '....';
var foundstyle = false;
if(document.cookie) {
var c = document.cookie;
while(true) {
var i1 = c.indexOf('=');
var i2 = c.indexOf(';');
if(i2 < 0)
i2 = c.length;
var cookiename = c.substring(0, i1);
var cookiewert = c.substring(i1+1, i2);
var i3 = cookiename.lastIndexOf(' ');
if(i3 > -1)
cookiename = cookiename.substring(i3 + 1);
if(cookiename == 'style') {
try {
var n = parseInt(cookiewert);
document.write('<link id="style" type="text/css" rel="stylesheet" href="' + styles[n-1] + '">');
foundstyle = true;
}
catch(err) {}
break;
}
if(c.length > i2)
c = c.substring(i2+1);
else
break;
}
}
if(!foundstyle)
document.write('<link id="style" type="text/css" rel="stylesheet" href="style.css">');
function change_style(n) {
document.getElementById('style').href = styles[n-1];
document.cookie = 'style=' + n + '; expires=' + a.toGMTString() + ';';
return;
}
</script>
<noscript>
<link id="style" type="text/css" rel="stylesheet" href="style.css">
</noscript>
Sorry, das war eben ich.
Vor lauter 'Cookies löschen' beim Ausprobieren, war ich jetzt nicht mehr eingeloggt ;-)
Hallo Sabine99.
Du bist echt absolut 1A!!!
Du begeisterst mich immer wieder mit Deinen Ideen und Deiner Unterstützung!
Ich finde Dein Script einfach Klasse und wenn es 100%ig funktioniert, ist das auch gut für alle User, die sich dann nicht immer Fragen müssen warum wieder etwas nicht funktioniert.
Also nochmals Danke dafür.
Gruss
Wolf
#35 RE: Verschiedene CSS Files anbieten
In Antwort auf:
Hallo Sabine99,
habe Dein Super-Script in meinem Forum ausprobiert.
Es tritt ein merkwürdiger Effekt auf.
Wenn alle "Temporären Internetdateien" und alle "Cookies" gelöscht sind und das Forum abgemeldet ist, funktioniert kein "Design-Wechsel".
Hat man sich ersteinmal angemeldet, funktioniert alles tadellos!
Man kann sich wieder abmelden und es funktioniert dann ebenfalls!
Liegt hier ein Problem mit den Cookies vor?
Wann wird ein Cookie vom Forum gesetzt?
Wenn man sich anmeldet oder schon bei Aufruf der Forumseite?
Gruss
Wolf
Im Firefox kann ich komischerweise das Design immer wechseln. Im IE tritt bei mir aber auch das Phänomen auf, dass der Styleswitcher erst nach einem Login funktioniert. Wenn man das beheben könnte, wäre super, wenn nicht, dann geht's immerhin recht gut.
Ich selbst habe den Styleswitcher auch mit einer DropDown-Box zur Auswahl und unter einer Domain in einem Frame funktioniert es auch nicht.
@wolf.andres: Wie hast du es hinbekommen, dass der Design-Wechsler auch ohne Anmeldung im IE funktioniert?
Und kleine Anmerkung: Wenn man bei dir das Design im Firefox wechselt und gleich danach wieder Designauswahl anklickt, erscheint bei mir
Not Found - The requested URL / Designauswahl was not found on this server..
Ich habe als Linkangabe einfach eine "#" gesetzt, dann wird keine Seite gewechselt.
#36 RE: Verschiedene CSS Files anbieten
Hallo WolverineX.
Danke für den Hinweis mit der DropDown Box,
habe ich gleich in meinem Forum geändert!
Zu Deinen Fehler:
Hast Du den letzten Beitrag von Sabine99 (23.12.2007 10:42) gelesen.
Hier geht es um den Fehler, den Du beschreibst.
Ich hatte vorher den gleichen Fehler festgestellt.
Allerdings in allen 4 Browsern.
Ist das Script bei Dir richtig eingetragen?
Kopiere das Script am besten mit dem FireFox.
Beim Internet Explorer wird durch die Pre-Rahmen-Formatierung des Scriptes der Zeilenumbruch nicht kopiert!
Kann sich hier ein Fehler eingeschlichen haben?
Gruss
Wolfgang
#37 RE: Verschiedene CSS Files anbieten
Hallo wolf.andres!
Mein Beitrag kam dadurch zustande, dass andere auch diesen Fehler haben. Sonst wäre er mir vielleicht nicht einmal richtig aufgefallen. Hatte bisher nur bemerkt, dass das Skript im Internet Explorer nicht funktioniert. Habe nach dem Lesen dieser Beiträge mich mal im IE eingelogggt und siehe da, es ging auf einmal!
Habe jetzt nochmal getestet, wie sich die Browser verhalten:
Firefox: Styleswitcher immer benutzbar
Internet Explorer: Styleswitcher nur nach Login benutzbar
Opera: Styleswitcher nur nach Login benutzbar
Habe das Script mit Firefox kopiert, benutze eigentlich nie andere Browser, nur um Kompatibilität zu prüfen. Kontrolliere nun mal das Skript auf seine Richtigkeit.
Danke für die Antwort!
#38 RE: Verschiedene CSS Files anbieten
Alle Browser können nun den Style auch ohne Login ändern.
Wahrscheinlich lag es daran, dass das Skript einen Text mit dem Stylenamen oder so etwas ausgibt.
Zitat von sabine99function change_style(n) {
document.getElementById('style').href = styles[n-1];document.getElementById('heading').innerHTML = 'Style ' + n;/* Cookie setzen */
document.cookie = 'style=' + n + '; expires=' + a.toGMTString() + ';';
return;
}
und später...:<h1 id="heading">Style 1</h1>
Ohne die Ausgabe wird der Style nicht permanent gesetzt und ändert sich wieder nach einem neuen Seitenaufruf. Habe die betreffende Textausgabe dann ausgeblendet mit style="visibility:hidden;" oder style="display:none;" (Keine Ahnung mehr, ist ja aber auch egal!).
Mit Teilen aus dem Skript von wolf.andres hat es nun funktioniert, da ohne die Überbleibsel dieser Text-Ausgabe das Skript wohl in "allen" Browsern funktioniert.
Großes Lob an sabine99 und wolf.andres!!!
Mein eingebautes Skript:
Head:
In Antwort auf:
<!-- Styleswitcher Head Anfang -->
<script language="JavaScript" type="text/javascript">
var a = new Date();
a = new Date(a.getTime() +1000*60*60*24*365);
var styles = new Array();
styles[0] = 'http://server/style1.css';
styles[1] = 'http://server/style2.css';
styles[2] = 'http://server/style3.css';
var foundstyle = false;
if(document.cookie) {
var c = document.cookie;
var foundstyle = false;
/* Cookievariablen ermitteln */
while(true) {
var i1 = c.indexOf('=');
var i2 = c.indexOf(';');
/* Falls Semikolon am Ende fehlt */
if(i2 < 0)
i2 = c.length;
var cookiename = c.substring(0, i1);
var cookiewert = c.substring(i1+1, i2);
/* Leerzeichen vor Name entfernen */
var i3 = cookiename.lastIndexOf(' ');
if(i3 > -1)
cookiename = cookiename.substring(i3 + 1);
/* Style festlegen */
if(cookiename == 'style') {
try {
var n = parseInt(cookiewert);
document.write('<link id="style" type="text/css" rel="stylesheet" href="' + styles[n-1] + '">');
foundstyle = true;
}
catch(err) {}
break;
}
/* Nächstes Cookie oder aufhören */
if(c.length > i2)
c = c.substring(i2+1);
else
break;
}
}
/* Standardstyle im Falle von Fehler oder keinem gewählten Style */
if(!foundstyle) document.write('<link id="style" type="text/css" rel="stylesheet" href="http://server/style1.css">');
function change_style(n) {
document.getElementById('style').href = styles[n-1];
/* Cookie setzen */
document.cookie = 'style=' + n + '; expires=' + a.toGMTString() + ';';
return;
}
</script>
<noscript>
<!-- Standardstyle falls Scripts nicht aktiviert sind -->
<link id="style" type="text/css" rel="stylesheet" href="http://server/style1.css">
</noscript>
<!-- Styleswitcher Head Ende -->
Body:
In Antwort auf:
<!-- Styleswitcher Box Anfang -->
<form>
<select class="tarea" size="1" name="Styleswitcher" onChange="javascript:parent.location = this.form.Styleswitcher.options[this.form.Styleswitcher.selectedIndex].value;">
<option value="">Style ändern...</option>
<optgroup label="Styles">
<option value="javascript:change_style(1)">Style 1</option>
<option value="javascript:change_style(2)">Style 2</option>
<option value="javascript:change_style(3)">Style 3</option>
</optgroup>
</select>
</form>
<!-- Styleswitcher Box Ende -->
#39 RE: Verschiedene CSS Files anbieten
Im Template Obere Leiste zwischen <HEAD> und </HEAD>:
<script type="text/javascript">
function switcher_on() {
document.getElementById('switcher').style.display=''
}
</script>
Somit wird der Switcher bei eingeschaltetem JavaScript aktiviert.
<body marginheight="0" marginwidth="0" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" onload="switcher_on()">
onload="switcher_on()" sorgt dafür, dass die Funktion auch aufgerufen wird (automatisch).
<div id="switcher" style="display:none;">
[Styleswitcher-Skript]
</div>
<!-- optional, falls ein Platzhalter mit Link zu Beitrag eingefügt werden soll -->
<noscript>
<a href="http://123484.homepagemodules.de/t245f10-Style-aendern.html">[Styleswitcher]</a>
</noscript>
<div id="switcher" style="display:none;"> und </div> sind erforderlich, damit der Quellcode darin ausgeblendet wird.
[Styleswitcher-Skript] ist der Quellcode für die Dropdown-Box oder was auch immer.
Das Grüne ist optional, falls statt dem Styleswitcher bei deaktiviertem JavaScript ein Link zu einem Beitrag mit Erklärung eingefügt werden soll. Andernfalls wird nichts angezeigt.
Erklärung:
Der Styleswitcher ist standardmäßig ausgeblendet. Ist JavaScript aktiviert, wird er eingeblendet. Ist JavaScript nicht aktiviert, dann bleibt er ausgeblendet. (Er würde sowieso nicht funktionieren.)
Der Quellcode zwischen <noscript> und </noscript> wird angezeigt, wenn JavaScript nicht aktiviert ist.
#40 RE: Verschiedene CSS Files anbieten
Hat eigentlich schon jemand eine Lösung dafür gefunden, dass das Skript auch in IFrames funktioniert?
#41 RE: Verschiedene CSS Files anbieten
#42 RE: Verschiedene CSS Files anbieten
Nein, leider nicht. :-(
Man kann zwar etwas auswählen, es ändert sich aber nichts.
Hast du ein Link wo es nicht funktioniert?
#44 RE: Verschiedene CSS Files anbieten
oder zum Vorführ-Zweck eingebettet in meine Homepage (nicht der Normalfall): http://florianzier.fl.ohost.de/?iframe=h...epagemodules.de
Bitte gib Bescheid, wenn du es angesehen hast! Ich benutze nämlich einen Framebreaker, damit von meiner Domain der IFrame um die Seite entfernt wird.
Leider unterstützen Dienste wie http://www.joynic.com und http://www.nic.de.vu die Domain-Weiterleitung nicht richtig, sondern zeigen immer nur die Domain an, obwohl in den Einstellungen anders angegeben!
Der Framebreaker ist also nur damit der IFrame der zur Domain-Anzeige generiert wird, aufgelöst wird und der Styleswitcher funktioniert. :-)
Bei deaktiviertem JavaScript funktioniert der Framebreaker zwar nicht mehr, aber wen interessiert's, da der Styleswitcher dann ja auch nicht funktioniert!
Falls es irgendwie in einem IFrame zu machen ist, wäre das natürlich auch nicht schlecht, da ich dann meine Domain angezeigt lassen kann und der dadurch generierte IFrame nichts mehr unbrauchbar macht.
#45 RE: Verschiedene CSS Files anbieten
Das Problem bei dir liegt hier:
<select class="tarea" size="1" name="Styleswitcher" onChange="javascript:parent.location = this.form.Styleswitcher.options[this.form.Styleswitcher.selectedIndex].value;">
Es ist nicht gestattet auf den übergeordneten Frame zuzugreifen, da er von einer anderen Domain kommt, daher der "Zugriff verweigert" Fehler (Same Origin Policy)
- Informationen
- Aktuelle News
- Forum Tutorials - Tipps und Anleitungen
- SEO / Werbung fürs Forum
- Verwaltung
- Extras
- Design
- Plugin(system)
- Eure Fragen zu Tutorials
- Forum Support
- Fragen und Antworten
- Pluginsystem
- Plugins
- Templates & Sprachen
- Bugreport
- Verbesserungsvorschläge
- Sponsoren gesucht
- Das neue Xobor Business-Template
- News und Updates
- Bugreport
- Allgemeines Feedback
- Verbesserungsvorschläge
- Sonstiges
- Kaffeeklatsch
- Lob & Kritik
- Verbesserungsvorschläge
- Allgemeine Fragen
- Fehlermeldungen
- Verbesserungsvorschläge Responsive Design
- Bugreport Responsive Design
- Archiv - Alter Betatest
- Responsive Design - Verbesserungsvorschläge
- Responsive Design - Bugreport
- Fragen zum neuen Template
- Neue Administration Beta Test
- Bugreport Neue Administration
- Allgemeines Fragen & Feedback
- Verbesserungsvorschläge zur neuen Administration
- Shoutbox
Ähnliche Themen
Jetzt anmelden!
Jetzt registrieren!
© 2017 Xobor | Forum-Software