• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

hintergrundfarbwahl bei verlassen und zurückkehren beibehalten?

d dennis

New member
ich habe eine index-seite, bei der man die hintergrundfarbe selber aussuchen kann. wenn man von dieser seite einem link folgt, also kein pop-up, sondern eine direkte verknüpfung, wobei die index-seite verschwindet und man von der verlinkten seite wieder auf die index-seite gelinkt wird, ist die farbwahl des hintergrundes von vorher passé, da die seite ja nun wieder neu geladen wird...!?
ist es möglich, für einen besucher die farbwahl des hintergrundes für eine sitzung beizubehalten, auch wenn er wie oben beschrieben, zu anderen verlinkten seiten geht und dann wieder zurückkehrt?
 
ich hab von cookies noch keine ahnung, aber die werden als errinnerung auf die festplatte des besuchers abgelegt, oder?

und was muss ich konkret schreiben, im quelltext?
:D
 
ich hab hier im forum über die suchfunktion nach was brauchbarem gesucht und auch meine offline-version von SELFHTML durchsucht, aber auch leider erfolglos...
:eek:

wenn du, womstar mir da was anbieten könntest, wäre das hilfreich.

so ein cookie könnte ich auch für andere sachen gebrauchen, zb das bestimmte js nur einmal am anfang durchlaufen.
 
ja, das hab ich alles schon gelesen, trotzdem weiss ich nicht, wie ich das für meinenzweck nutze.
jedoch habe ich was passendes auf http://www.javatop.de/
gefunden.
muss jetzt mal rumprobieren, ob ichs hinkriege.
also haltet mich aus pädagogischen gründen ruhig noch hin und lasst mich mal selbst dadurch wurschteln...:D
 
:confused:

ja, weiß nicht.
ich hab bei dem script von dieser seite auch das problem, dass man neben der farbe des hintergrundes auch die der schrift wählen kann. und daher sind da ne menge if-else usw. verschachtelungen, die ich nicht ganz blicke...
 
na gut ... irgendwann wirst du dann behaupten, wir hätten dich dumm sterben lassen ... das kann keiner verantworten ;)

aber ich kann dir sagen ... schlauer wirst du aus dem folgenden code auch nicht.

der folgende code zeigt ein cookie object.
es ist mit diesem nicht nur möglich einfach strings in cookies zuspeichern, sondern auch einfach arrays und objecte.

bsp:
array - ["a","b","c","d"];
object - {1:"a",2:"b",3:"c",4:"d"};


Code:
var $_COOKIE = {

	set_cookie : function(cName,cValue,cDays) {

		var cookieQuery = new String();
		var temporArray = new Array();

		var alowedTypes = ["string","array","object","number"];
		var inComingTyp = String(cValue.constructor);

		inComingTyp = inComingTyp.split(" ")[1];
		inComingTyp = inComingTyp.split("()").join("").toLowerCase();

		if(alowedTypes.join(",").indexOf(inComingTyp) < 0) return false;

		if(inComingTyp == "array") {

			cValue = "a##"+cValue.join(",");

		} else if(inComingTyp == "object") {

			for(var x in cValue) temporArray[temporArray.length] = x +":"+ cValue[x];

			cValue = "o##"+temporArray.join(",");

		} else {

			cValue = "s##"+cValue;
		}

		cookieQuery += cName+"=";
		cookieQuery += escape(cValue)+"; expires=";
		cookieQuery += new Date(new Date().getTime()+(86400*(cDays*1000))).toLocaleString();

		window.document.cookie = cookieQuery;
	},

	read_cookie : function(cName) {

		var cookies = document.cookie.split(";");

		for(var x=0; x<cookies.length; x++) {

			var cookie = cookies[x].split("=");

			if(cookie[0] == cName) {

				var locaType = String(unescape(cookie[1])).split("##");

				if(locaType[0] == "a") {

					return locaType[1].split(",");

				} else if(locaType[0] == "o") {

					var tmpArr = locaType[1].split(",");

					for(var values='',tmpObj={},x=0;x<tmpArr.length;x++) {

						values = tmpArr[x].split(":");

						tmpObj[values[0]] = values[1];
					}

					return tmpObj;

				} else {

					return locaType[1];
				}
			}
		}

		return false;
	},

	delete_cookie : function(cName) {

		this.set_cookie(cName,"",-99999999);
	}
};



für deinen fall eignet es sich die daten in einem objecte abzulegen, welches im cookie abgespeichert wird.
in diesem kannst du die die farbe und die schriftart definieren.

bsp:
{bgcolor:"#ff0000",font:"arial"}


die folgende seite ist nur ein beipspiel wie es aussehen könnte.

http://www.build.more-style.de/cookie/


des weiteren kannst du dir das ganze zum downloaden (siehe anhang).
aber vorsicht, für jemanden der sich nicht auskennt ist das starker tobak.

viel spaß! ;)
 

Anhänge

  • cookie.zip
    2,3 KB · Aufrufe: 13
Zuletzt bearbeitet:
also ich hab deinen anhang runtergeladen und man kriegt ne fehlermeldung, dass

$_COOKIE

nicht definiert ist...:confused:

ich habe die werte für die schriftart rausgeschmissen und nun dieses script, welches halt diese fehlermeldung hat und auch nicht bei wahl einer neuen farbe reagiert:

<html>
<head>
<script src="cookie_object.js"></script>

<script>
loadCookieData = function(bodyID) {

objs = document.all? document.all[bodyID]: document.getElementById(bodyID);

values = $_COOKIE.read_cookie("usersettings");

objs.style.backgroundColor = values["bgcolor"];

};

setzeCookie = function(cookieActivDays,bodyID,f,e1) {

objs = document.all? document.all[bodyID]: document.getElementById(bodyID);

form = document[f];

farb = form[e1]["options"][form[e1]["selectedIndex"]]["value"];



$_COOKIE.set_cookie("usersettings",{"bgcolor":farb},cookieActivDays);

values = $_COOKIE.read_cookie("usersettings");

objs.style.backgroundColor = values["bgcolor"];

};
</script>
</head>

<body id="bodycolor" onload="loadCookieData('bodycolor')">



<form name="selecter">
<select name="color" onchange="setzeCookie(31,'bodycolor','selecter','color')">
<option value="#68aec2">#68aec2
<option value="#8fb4d3">#8fb4d3
<option value="#6c49d8">#6c49d8
<option value="#a5329e">#a5329e
<option value="#ce514b">#ce514b
<option value="#a432b6">#a432b6
<option value="#e3ac78">#e3ac78
<option value="#920ba4">#920ba4
<option value="#30b2ac">#30b2ac
<option value="#4e23bd">#4e23bd
</select>

</form>
<br><br>

</body>
</html>

oder muss ich noch in arrays oder so die farben nocheinmal definieren?
HILFE, ich glaube ich laufe gefahr, doch dumm zu sterben...:D
 
$_COOKIE ist das object mit dem du auf einfache weise cookies setzten, auslesen und löschen kannst. vermutlich hast du den code von meinem letztes post nicht oder nicht korrekt eingebuden.


das ist der datei name zu dem script cookie_object.js
welches so includiert wird.

<script src="cookie_object.js"></script>

falls du das script in einem anderem ordner zuliegen hast als die eigentliche html datei, musst du natürlich den pfad zu der .js-datei richtig definieren.
 
SOOO, jetzt hab ichs hinbekommen!
ich hab die font-werte erfolgreich aus dem script verbannt.
die fehlermeldung kam dadurch, dass ich die gepackte datei nicht extrahiert hatte...:eek:
naja, was solls, jetzt hatts ja geklappt.

eine frage noch: wie erstelle ich sone js-file, einfach im editor mit der endung .js abspeiern, oder wie? und warum macht man das überhaupt? man hätte das script doch auf die entscheidende seite mit einbinden können, oder nicht!?

jedenfalls danke für die mühen.
 
Original geschrieben von d dennis
eine frage noch: wie erstelle ich sone js-file, einfach im editor mit der endung .js abspeiern, oder wie?
Theoretisch schon. Ist nur sehr aufwändig, weil es da keine fertigen Script-Schnipsel gibt, die du benutzen kannst.

Ich nehme für alles rund um das Thema html den Dreamweaver von Macromedia.
Bin aber auch nicht so der JSler - da gibts sicher geeigneteres.

Jonas
 
naja, ständig das lange script einbinden ist wie gesagt etwas aufwendig, außerdem bläht es deinen code unnötig auf und du kannst schnell die übersicht verlieren. wenn du 30 html seiten hast macht das schon was aus wenn ich die .js-file includiere ( <script src="cookie_object.js"></script> ) oder den ganzen code, siehe oben einbinden muss.
 
Zurück
Oben