[TYPO3-german] OT: JavaScript "onload" mag mich nicht

Peter Kühnlein peter at function2form.net
Fri Jun 3 16:46:29 CEST 2016


Liebe Liste,

die onload-Anweisung treibt mich regelmäßig zum Wahnsinn. Ich habe 
folgendes Szenario: wir müssen ja seit Februar den Hinweis auf Cookies 
setzen wegen Anwalt, Abmahn, TMG... Dazu wollte (und will) ich jetzt 
einen ganz einfachen Mechanismus nutzen: div in mein HTML (ganz oben, ab 
Zeile 2 - da soll später mit styles.content.get ein Zugriff für den 
Kunden möglich sein) mit dem Hinweis auf Cookienutzung und sofort 
ausblenden, wenn mein eigenes Cookie zum Warnhinweis gesetzt ist

<div id="container">
   <div id="cookieWarning" onload="checkCookie()">
     Diese Seiten verwenden Cookies. Durch die Benutzung dieser Seiten 
akzeptieren Sie dies. Bitte lesen Sie dazu auch unsere 
Datenschutzbestimmungen.<br />
     <a name="cookieWarningOk" id="cookieWarningOk" 
onClick="setCookie('zugestimmt','1',30);checkCookie();">Ok</a>
   </div>
   <div id="oben">
     ...
   </div>
   ...
</div>

Mein JavaScript dazu ist ähnlich schlicht:

function setCookie(cname,cvalue,exdays){
   var d = new Date();
   d.setTime(d.getTime() + (exdays*24*3600*1000));
   var expires = "expires="+d.toUTCString();
   document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/";
}

function getCookie(cname){
   var name = cname + "=";
   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);
     }
     if(c.indexOf(name)==0){
       return c.substring(name.length,c.length);
     }
   }
   return "";
}

function checkCookie(){
   var zugestimmt=getCookie("zugestimmt");
   if(zugestimmt!=""){
     document.getElementById('cookieWarning').style.display = "none";
   }
}

Klicke ich nun auf mein "Ok" in der div, verschwindet sie 
erwartungsgemäß. Super! Firefox sagt mir auch, dass das Cookie gesetzt 
ist. Noch besser! Aber lade ich die Seite erneut (F5) erscheint die div 
erneut. Dengl! Das heißt, checkCookie() funktioniert - wird aber beim 
Laden der div nicht aufgerufen.

Wie kriegt Ihr das hin, dass onload bei Euch funktioniert?

LG Peter

-- 

http://function2form.net
http://peter-kuehnlein.net

"If one hasn't previously mastered his mind and body, he will not defeat 
the enemy."
(Hagakure)

Latest projects
http://mein-bobber.de
http://www.käse1a.de


More information about the TYPO3-german mailing list