Hallo,
ich habe eine Webseite mit momentan einer Ebene. Diese kann ich mittels meines vorhandenen Scripts bewegen.
Soweit funktioniert alles. Nun möchte ich das die neue Position der Ebene in einen Cookie gespeichert wird - die Funktion müsste bereits im aktuellen Script sein. Was nicht funktioniert ist, das die neue Position auch wieder abgerufen wird - dafür habe ich auch ein Script - mir gelingt es nur nicht beide miteinander zu kombinieren.
Zur Info: Die beiden Scipts habe ich nach langem suchen im Web gefunden. Meine Programier-/JavaScriptkenntnisse gehen gleich null - sollte mir also jemand helfen können/wollen - ich benötige etwas mehr hilfe als nur einen kleine Hinweis ; )
Hier ist der Teil den ich noch in das bestehende Script einfügen muss:
Und hier meine bestehende Html-Seite incl. des funktionierenden Scripts:
ich habe eine Webseite mit momentan einer Ebene. Diese kann ich mittels meines vorhandenen Scripts bewegen.
Soweit funktioniert alles. Nun möchte ich das die neue Position der Ebene in einen Cookie gespeichert wird - die Funktion müsste bereits im aktuellen Script sein. Was nicht funktioniert ist, das die neue Position auch wieder abgerufen wird - dafür habe ich auch ein Script - mir gelingt es nur nicht beide miteinander zu kombinieren.
Zur Info: Die beiden Scipts habe ich nach langem suchen im Web gefunden. Meine Programier-/JavaScriptkenntnisse gehen gleich null - sollte mir also jemand helfen können/wollen - ich benötige etwas mehr hilfe als nur einen kleine Hinweis ; )
Hier ist der Teil den ich noch in das bestehende Script einfügen muss:
Code:
function init() {
// Cookie lesen:
var cookieString = liesCookie("Layout");
if (cookieString) {
// Array mit Wertpaaren erzeugen:
var divPosArray = cookieString.split("+");
for (i=0; i<divs.length; i++) {
// Werte aus Wertpaar lesen:
var posX = divPosArray[i].split(",")[0];
var posY = divPosArray[i].split(",")[1];
// Elemente positionieren:
if (document.layers) {
divs[i].left = posX;
divs[i].top = posY;
}
else {
divs[i].style.left = posX;
divs[i].style.top = posY;
}
Und hier meine bestehende Html-Seite incl. des funktionierenden Scripts:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
<script language="JavaScript1.2" type="text/javascript">
<!--
drag = "inaktiv";
aktivX = 0;
aktivY = 0;
// Wir brauchen eine neue globale Variable, die das derzeit
// aktive Element angibt:
aktivDiv = null;
// Ausserdem halten wir den z-index-Wert des derzeit aktiven
// Elements fest, damit wir das nächste aktive Element
// darüber legen können. Am Anfang setzen wir ihn einfach
// auf 1000:
aktivZindex = 1000;
function init() {
// Im Array divs[] sammeln wir alle (positionierten) div-
// Elemente der Seite:
divs = (document.layers) ? document.layers :
(document.all) ? document.all.tags("DIV") :
document.getElementsByTagName("DIV");
// Jetzt weisen wir jedem div den MouseDown-Handler zu:
for (i=0; i<divs.length; i++) {
if (divs[i].captureEvents) // Netscape 4
divs[i].captureEvents(Event.MOUSEDOWN);
divs[i].onmousedown = mdown;
}
// die andern Handler nicht vergessen:
if (document.captureEvents) // Netscape
document.captureEvents(Event.MOUSEMOVE |
Event.MOUSEUP);
document.onmouseup = mup;
document.onmousemove = mmove;
}
window.onload = init;
function mdown(e){
// Wir müssen onmousedown herausfinden, welches div-
// Element aktiviert wurde. Dazu benutzen wir "this".
// Dann zählen wir den bislang höchsten z-Index-Wert eins
// nach oben und weisen ihn dem aktiven div zu. Der Rest
// ist wie gehabt.
aktivDiv = this;
if (document.layers) aktivDiv.zIndex = aktivZindex++;
else aktivDiv.style.zIndex = aktivZindex++;
drag = "aktiv";
aktivX = (e) ? e.pageX :
event.clientX + document.body.scrollLeft;
aktivY = (e) ? e.pageY :
event.clientY + document.body.scrollTop;
return false;
}
function mmove(e){
// fast keine Änderungen im Vergleich zum einfachen
// Drag&Drop
if (drag == "inaktiv") return;
var neuX = (e) ? e.pageX :
event.clientX + document.body.scrollLeft;
var neuY = (e) ? e.pageY :
event.clientY + document.body.scrollTop;
var distX = (neuX-aktivX);
var distY = (neuY-aktivY);
aktivX = neuX;
aktivY = neuY;
if (document.layers) {
aktivDiv.left += distX;
aktivDiv.top += distY;
}
else {
aktivDiv.style.left =
parseInt(aktivDiv.style.left) + distX;
aktivDiv.style.top =
parseInt(aktivDiv.style.top) + distY;
}
}
function mup(e){
drag = "inaktiv";
// Cookie-String zusammenstellen:
var cookieString = "";
for (i=0; i<divs.length; i++) {
var posX = (document.layers) ? divs[i].left :
parseInt(divs[i].style.left);
var posY = (document.layers) ? divs[i].top :
parseInt(divs[i].style.top);
cookieString += posX + "," + posY + "+";
}
// Verfallspunkt in 100 Tagen:
var jetzt = new Date();
var verfall = new Date(jetzt.getTime() +
1000*60*60*24*100);
// Cookie schreiben:
schreibCookie("Layout", cookieString, verfall);
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; width:200px; height:115px; z-index:1; left: 253px; top: 203px; background-color: #666666; layer-background-color: #666666; border: 1px none #000000;"></div>
</body>
</html>