Autor |
Nachricht |
seitenumbruch
Threadersteller
Dabei seit: 21.08.2010
Ort: -
Alter: 54
Geschlecht:
|
Verfasst Di 21.09.2010 10:58
Titel Fontsize-JS: Cookie-Anweisung hinzufügen. Aber wie? |
|
|
Grüße ins Forum!
Ich stehe momentan vor einem kleinen Problem. Auf einer Website habe ich per JS ein Fontsize-Script eingebunden. Es funktioniert prächtig und ist korrekt im <head>-Bereich auf jeder (Unter-)Seite eingebunden. Zudem sind die "onclick"-Anweisungen im <body>-Bereich und die <div>-ID's im Content-Bereich richtig platziert.
Ich habe dann noch Grafiken eingebaut, die mit einen Klick auf eine Lupe mit einem Pluszeichen und eben einem Minuszeichen dem Nutzer ein simples Umschalten zwischen den einzelnen Schriftgraden erlauben. So weit, so gut...
Über Sinn und Unsinn dieses Scripts brauchen wir uns nicht zu unterhalten, ein Kunde möchte es so explizit haben.
So sieht das Script aus:
Code: | <script type="text/javascript">
function fontSize(was,px,wen) {
aktuell = document.getElementById(wen).style.fontSize;
neu = aktuell.replace(/px/gi,"");
neu *= 1;
if (was=="big") {
neu += px;
}
else if (was=="small") {
neu -= px;
}
document.getElementById(wen).style.fontSize = neu + "px";
}
</script>
|
Problem: Wenn ich den Schriftgrad vergrößere oder verkleinere, bleibt diese Einstellung nur bis zum nächsten Klick auf eine Unterseite "erhalten". Bin ich auf einer neuen Unterseite, "springt" der Schriftgrad wieder auf die standardmäßige Einstellung zurück.
(Eventuelle) Lösung: Mit einem Cookie könnte man es so regeln, der Nutzer nur noch eine Einstellung (z.B. Schriftgrad größer) vornimmt und diese dann für alle Unterseiten beibehalten wird.
Fragen: Da ich mit JS keine großen Erfahrungen habe, weiß ich nicht weiter. Wie kann ich es nun realisieren, dass die Einstellung des Schriftgrades für alle Unterseiten beibehalten wird? Wie muss die "Cookie-Anweisung" (wenn es so zu realisieren ist) aussehen?
Ich bitte um Hilfe und bedanke mich schon einmal im Voraus...
Greetz Andreas
Zuletzt bearbeitet von seitenumbruch am Di 21.09.2010 10:59, insgesamt 1-mal bearbeitet
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 21.09.2010 11:37
Titel
|
|
|
Beim setzen des Wertes speicherst du diesen auch in einem Cookie. Den Cookie
liest du dann wenn die Seite geladen wird aus und bestimmst somit den Schriftgrad.
Hier findest du alles was du zu Cookies in Javascript wissen mußt:
http://www.quirksmode.org/js/cookies.html
|
|
|
|
|
Anzeige
|
|
|
seitenumbruch
Threadersteller
Dabei seit: 21.08.2010
Ort: -
Alter: 54
Geschlecht:
|
Verfasst Di 21.09.2010 11:39
Titel
|
|
|
Okay, vielen Dank für die schnelle Antwort!
Dann werde ich mich mal belesen, thx...
Greetz, Andreas
|
|
|
|
|
seitenumbruch
Threadersteller
Dabei seit: 21.08.2010
Ort: -
Alter: 54
Geschlecht:
|
Verfasst Di 21.09.2010 14:23
Titel
|
|
|
Sodele, irgendwie werde ich nicht schlau...
Ich habe das folgende Script mal meinem ebenfalls funktionierenden Styleswitcher entnommen. Da funktioniert so ein Cookie prächtig und alle Funktionen bleiben erhalten.
Kann man die Zeilen nicht irgendwie passend abändern?
Den Cookienamen habe ich bereits ersetzt mit "Fontsize". Nun müssten nur noch ein paar Variablen ersetzt werden: getPreferredStyleSheet, setactivestylesheet und getActiveStyleSheet - eigentlich, oder? Und wenn, womit?
Wenn ich dann den Code in das o.g. Script einfüge, sollte es doch klappen? Oder gibt es einen Denkfehler??? *auf dem Schlauch steh'*
Code: | function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
window.onload = function(e) {
var cookie = readCookie("fontsize");
var title = cookie? cookie : getPreferredStyleSheet();
setactivestylesheet(title);
}
window.onunload = function(e) {
var title = getActiveStyleSheet();
createCookie("fontsize", title, 365);
}
var cookie = readCookie("fontsize");
var title = cookie? cookie : getPreferredStyleSheet();
setactivestylesheet(title); |
Zuletzt bearbeitet von seitenumbruch am Di 21.09.2010 14:42, insgesamt 1-mal bearbeitet
|
|
|
|
|
seitenumbruch
Threadersteller
Dabei seit: 21.08.2010
Ort: -
Alter: 54
Geschlecht:
|
Verfasst Do 23.09.2010 23:02
Titel
|
|
|
Update...
Habe bis jetzt hin und her probiert, aber ich habe keinen Cookie für die Fontsize-Funktion basteln können. Jedenfalls in diesem Bereich: NULL Erfolg - auf ganzer Linie...
Könnte mir bitte jemand beim Cookiesetzen helfen? Vielen lieben Dank im Voraus...
Greetz, Andreas
|
|
|
|
|
|
|
|
Ähnliche Themen |
Einstellen einer Fontsize in Photoshop CC 2018 nicht flüssig
htaccess Rewrite und fehlerhafte get-anweisung
include()-Anweisung innerhalb von array() möglich?
richtige SQL Anweisung funktioniert nicht im Script
[FlashMX 2004] return-Anweisung verstanden?
Auswahlbox mit „onchange-Anweisung XHTML 1.0 valide bekommen
|
|