Nakedsoul: div click popup script mit cookie

Hallo
Ich habe hier ein Problem mit einem "div click popup script mit cookie"
Die funktion ist wie folgt:
ein durchsichtiger div mit 100% width und height wird geklick daraufhin öffnet sich ein neues fenster mit der window.open funktion.

Das Problem hierbei ist das nach dem reload der page nichts mehr anklickbar oder markierbar ist da der div nicht entfernt wurde. beim klick kommt zwar kein neues fenster mehr aber ,wie gesagt der div ist noch da.

ich hoffe mir kann jemand dabei helfen der gut ahnung mit javascript hat.

mfg

<script language="JavaScript" type="text/javascript" src="libCookies.js"></script>  
<script type="text/javascript">  
  
function initPage()  
{  
 myCookies = getCookies();  
  
 if ( myCookies[ "popupDisplayed" ] == null )  
 {  
  setCookie( "popupDisplayed" , "1" );  
  
  window.open("http://google.de");  
self.focus();  
document.getElementById('myPopup').style.visibility = "hidden";  
  
 };  
};  
document.write('<style type=\"text/css\">.myPopup{    min-height: 100%;    height:auto !important; /* moderne Browser */    height:100%; /* IE */    position:absolute;    height:1000;    width:100%;    z-index:1001;    left: 0;    top: 0;  }</style> <div class=\"myPopup\" id=\"myPopup" onclick=\"javascript:initPage();\"></div>');  
  
  
</script>  

DATEI libCookies.js :

function getCookies()  
{  
    var result = [] , i , values ,  
    storedCookies = document.cookie.split(";");  
    for ( i=0;i<storedCookies.length;i++)  
    {  
            values = storedCookies[ i ].split("=");  
      result[ values[0].replace(/^ /,'') ] = values[ 1 ]; // Leerzeichen entfernen  
    };  
    return result;  
}  
  
function setCookieTime( days )  
{  
    if ( !days )  
       return ( new Date( 2037 , 0 , 1 )).toGMTString();  
  
    return new Date( ( new Date().getTime() + 1000 * 3600 * 24 * days ) ).toGMTString();  
}  
  
function setCookie( name , value )  
{  
    document.cookie = name + "=" + unescape( value ) + ";"+  
       "expires=" + setCookieTime()  + ";";  
}  
  
function deleteCookie( cookieName )  
{  
    document.cookie = cookieName + "=;expires=" + setCookieTime( -1 );  
}
  1. Liebe Nakedsoul,

    document.getElementById('myPopup').style.visibility = "hidden";

    diese Zeile möchtest Du ersetzen. Du schaust nach unter meinElement.parent.[ref:self812;javascript/objekte/node.htm#remove_child@title=removeChild](meinElement) und solltest prompt mit etwas Ausprobieren oder scharfen Nachdenkens die Lösung finden.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hi,

      meinElement.parent.http://de.selfhtml.org/javascript/objekte/node.htm#remove_child@title=removeChild

      kleine Ergänzung: parentNode

      Aber ich würde lieber das ganze Konstrukt removen...

      Gruesse, Joachim

      --
      Am Ende wird alles gut.
      1. Hi,

        meinElement.parent.http://de.selfhtml.org/javascript/objekte/node.htm#remove_child@title=removeChild
        kleine Ergänzung: parentNode

        kennt sich denn niemand mit meinElement.parent.http://de.selfhtml.org/javascript/objekte/node.htm#remove_child@title=removeChild aus?
        brauche hier hilfe bitte

        1. Liebe nakedsoul,

          kennt sich denn niemand mit meinElement.parent.http://de.selfhtml.org/javascript/objekte/node.htm#remove_child@title=removeChild aus?

          da habe ich einen Flüchtigkeitsfehler gemacht. Es hätte keinesfalls parent heißen dürfen, sondern parentNode. Aber das wurde ja von Joachim bereits angemerkt.

          brauche hier hilfe bitte

          Nein. Du willst, dass andere Dein Problem lösen. Was Du wirklich brauchst, ist Eigeninitiative! Das ist ein Unterschied. Also klemm' Dich dahinter und lerne das, was Du brauchst, um das, was Du tun willst, auch umzusetzen.

          Oder Du machst etwas anderes und gibst Deine "Uservergewaltigung" gänzlich auf. Das wäre auch eine sehr gute Idee, bei der Du auch etwas dazulernst...

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Liebe nakedsoul,

            kennt sich denn niemand mit meinElement.parent.http://de.selfhtml.org/javascript/objekte/node.htm#remove_child@title=removeChild aus?

            da habe ich einen Flüchtigkeitsfehler gemacht. Es hätte keinesfalls parent heißen dürfen, sondern parentNode. Aber das wurde ja von Joachim bereits angemerkt.

            die zeile

            document.getElementById('myPopup').style.visibility = "hidden";

            funktioniert doch beim ersten mal. das div wird entfernt erst nach dem seiten neuladenbleibt das div unsichtbar über den kompletten bildschirm und es lässt sich nichts machen. d.h. der cokie wirkt nur auf die window.open funktion und nicht auf das div.
            das hängt dann mit dem unteren zeil des scripts zusammen

            document.write('<style type=\"text/css\">.myPopup{ min-height: 100%; height:auto !important; /* moderne Browser */ height:100%; /* IE */ position:absolute; height:1000; width:100%; z-index:1001; left: 0; top: 0; }</style> <div class=\"myPopup\" id=\"myPopup" onclick=\"javascript:initPage();\"></div>');

            ich glaube das problem liegt bei der cookie -Implementierung.

            1. Liebe nakedsoul,

              document.getElementById('myPopup').style.visibility = "hidden";

              funktioniert doch beim ersten mal. das div wird entfernt erst nach dem seiten neuladenbleibt das div unsichtbar über den kompletten bildschirm und es lässt sich nichts machen.

              Nein! Das <div> wird keinesfalls "entfernt"! Du hast anscheinend nicht wirklich nachgelesen, was visibility:hidden bewirkt!

              d.h. der cokie wirkt nur auf die window.open funktion und nicht auf das div.

              Was auch immer. Ich habe mir jedenfalls nicht die Mühe gemacht, Deinen Uralt-Code zu studieren. Es ist ja auch nicht mein Problem, und Du willst partout an diesem Uralt-Code festhalten. Und das ist ja Deine freie Entscheidung.

              document.write('<style type=\"text/css\">.myPopup{ min-height: 100%; height:auto !important; /* moderne Browser */ height:100%; /* IE */ position:absolute; height:1000; width:100%; z-index:1001; left: 0; top: 0; }</style> <div class=\"myPopup\" id=\"myPopup" onclick=\"javascript:initPage();\"></div>');

              Dieses document.write schreibt ein <style>-Element ins Dokument. Dieses darf nur im <head> eines Dokuments stehen! Danach schreibt es unmittelbar darauf ein <div>-Element ins Dokument. Ein solches Element darf im <head> eines Dokuments aber nicht stehen, sondern nur im <body>! Damit ist Dein Uralt-Code nicht nur uralt, sondern geradewegs Schrott. Befreie Dich von diesem Code und am besten von Deinem Vorhaben. Wenn Du es aber unbedingt nicht lassen kannst, dann lerne ausreichend viel über JavaScript, um Dein Problem endlich selbst zu lösen! Deine Rückfragen zeigen mir, dass Du Dich immer mehr im Kreis drehst!

              Warum stehen denn in obigem Code Backslashes vor den doppelten Anführungszeichen? Wenn das alles in einfachen Anführungszeichen steht, dann sind die Backslashes eher störend, keinesfalls jedoch sinnvoll oder gar hilfreich!

              Liebe Grüße,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
              1. wenn du mir nicht helfen willst dann lass es und halt bitte nicht diese Vorträge von wegen gib es auf etc. .ich würde hier nicht posten wenn ich es nicht bräuchte.
                ___
                der Fehler muss glaube ich am Cookie liegen. ohne geht das Script perfekt .es soll aber nur einmal pro tag erscheinen.

    2. Liebe Nakedsoul,

      document.getElementById('myPopup').style.visibility = "hidden";

      diese Zeile möchtest Du ersetzen. Du schaust nach unter meinElement.parent.[ref:self812;javascript/objekte/node.htm#remove_child@title=removeChild](meinElement) und solltest prompt mit etwas Ausprobieren oder scharfen Nachdenkens die Lösung finden.

      Liebe Grüße,

      Felix Riesterer.

      hallo Felix
      leider bringt mich der tipp nicht weiter, da ich noch kaum ahnung von javascript besitze.
      dieses cookie script hab ich codeschnipsel zusammengesetzt und war gut lange damit beschäftigt überhaupt es zum laufen zu bringen.

      wenn du mir bei dieser Kleinigkeit evt. mit einem codeschnipsel helfen könntest wäre ich sehr dankbar. denn es ist ziemlich wichtig.

      mfg
      nakedsoul

      1. Hi,

        denn es ist ziemlich wichtig.

        glaub ich kaum. Sieht eher nach etwas aus, dass man Nutzervergewaltigung nennen möchte.

        Dennoch ein Tipp: anstelle der visibility könntest Du die CSS-Eigenschaft 'display' auf 'none' setzen, sofern Du nicht die von Felix angeratene Methode removeChild nutzen möchtest.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. Hi,

          denn es ist ziemlich wichtig.
          glaub ich kaum. Sieht eher nach etwas aus, dass man Nutzervergewaltigung nennen möchte.

          Dennoch ein Tipp: anstelle der visibility könntest Du die CSS-Eigenschaft 'display' auf 'none' setzen, sofern Du nicht die von Felix angeratene Methode removeChild nutzen möchtest.

          Gruesse, Joachim

          display: none

          wenn ich diese css eigenschaft einfüge erscheint leider erst gar kein div .