Alexender: Reloadsperre

Hallo,

ich möchte ein Popup bei mir Aufgehen lassen, von einer Firma, die für PopUps zahlt. Leider wir ein PopUp bei jeder Seite aufgerufen.

Ich will da eine JS-Reloadsperre einbauen, die entweder anhand von IP oder Cookie funktioniert.

Ich habe das hier bei einigen ausprobiert:

<script type="text/javascript">
<!--
if(!document.cookie){
document.write('<script src="http://www.popupserver.de/script.php?pid=xxx"></script>')
var cend = new Date();
var reload = cend.getTime() + (60 * 60 * 1000);
cend.setTime(reload);
document.cookie = "reload=block; expires=" + cend.toGMTString();
}
//--></script>

Leider gibt es problemme. Bei einem, so wie oben funktioniert es nicht, wel das JS beim ersten </script> endet und der restlicher Code wird einfach auf der Seite als Text angezeigt.

Beim anderen war das ein <iframe> Mit Code ging das i.O., aber die Reload hat nicht funktioniert.

Was mache ich falsch? Wie mache ich es so, dass die Reloadsperre auf jeden Fall funktioniert?

Alexender.

  1. Hi,

    Leider gibt es problemme. Bei einem, so wie oben funktioniert es nicht, wel das JS beim ersten </script> endet und der restlicher Code wird einfach auf der Seite als Text angezeigt.

    und zwar völlig zu Recht - die Zeichenfolge "</" beendet den <script>-Bereicht. Vermeide sie also.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. und zwar völlig zu Recht - die Zeichenfolge "</" beendet den <script>-Bereicht. Vermeide sie also.

      Das ist ja wirklich hilfreiche Antwort. Ich werde es unbedingt so machen :-)

      Damit man mich richtig versteht. Ein JS soll nur dann ausgeführt werden, wenn JS (Reloadsperre) es ihm "erlaubt".

      Gruss Alexender.

      1. Hi,

        und zwar völlig zu Recht - die Zeichenfolge "</" beendet den <script>-Bereicht. Vermeide sie also.
        Das ist ja wirklich hilfreiche Antwort. Ich werde es unbedingt so machen :-)

        das ist gut. Ich nehme an, Dein Problem ist somit gelöst.

        Damit man mich richtig versteht. Ein JS soll nur dann ausgeführt werden, wenn JS (Reloadsperre) es ihm "erlaubt".

        Es kann nur ausgeführt werden, wenn der Code korrekt ist. Dem ist derzeit nicht so, aus dem genannten Grund.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hilfst du mir vielleicht den Code richtig zu machen? Ich bin ehrlich gesagt kein JS Profi.

          Gruss Alex.

          1. Hi,

            Hilfst du mir vielleicht den Code richtig zu machen?

            sehr gerne. Allerdings _helfe_ ich auch wirklich nur, werde es aber garantiert nicht selbst machen. Um Dir helfen zu können, muss ich wissen, wo Du Probleme hast.

            Ich bin ehrlich gesagt kein JS Profi.

            Ich auch nicht. JavaScript setze ich in meinem Beruf nur sehr selten ein.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. sehr gerne. Allerdings _helfe_ ich auch wirklich nur, werde es aber garantiert nicht selbst machen. Um Dir helfen zu können, muss ich wissen, wo Du Probleme hast.

              Es gibt ein Code:

              z.B. der:
              <script src="http://www.popupserver.de/script.php?pid=xxx"></script>

              oder der:
              <iframe src="http://www.popupserver.de/script.php?pid=xxx"></iframe>

              diesr soll bei einem Client maximal 1 Mal in 30 Minuten ausgeführt werden. Nicht öfter.

              Mein Problem ist, ich weis keine Lösung.
              Wenn jemand eien Lösung kennt, dann schreibt bitte hier.

              Dake!
              Gruss Alex.

              1. Hi Alexender,

                diesr soll bei einem Client maximal 1 Mal in 30 Minuten ausgeführt werden. Nicht öfter.

                Warum nimmst du nicht irgendeine serverseitige Technik, wie z.B. PHP. Damit kannst du auch ein Cookie setzen, welches du dann bsp. so lange gültig lassen kannst, wie das Browserfenster geöffnet ist (oder natürlich auch eine festgelegte Zeit).

                Dann könntest du dieses Javascript einfach per PHP ausgeben, wenn noch kein Cookies gesetzt ist.

                MfG, Dennis.

                --
                Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
                Zufällige Hinweise:
                ------------------------
                Den Selfcode kann man sich übrigends hier entschlüsseln lassen:
                http://www.peter.in-berlin.de/projekte/selfcode/
                1. Die Antwort wurde doch schon gegeben. Du sollst den Scripttag maskieren - so habe ich es verstanden.

                  Du machst also aus:

                  document.write('<script src="http://www.popupserver.de/script.php?pid=xxx"></script>')

                  document.write('<script src="http://www.popupserver.de/script.php?pid=xxx"></script>')

                  Micha

                  1. Funktioniert trotzdem irgendwie nicht :'-(

                    <script type="text/javascript"><!--
                    if(!document.cookie){
                    document.write('<script type="text/javascript" src="http://www.privider.de/script.php?xxx"></script>');
                    var cend = new Date();
                    var reload = cend.getTime() + (60 * 60 * 1000);
                    cend.setTime(reload);
                    document.cookie = "reload=block; expires=" + cend.toGMTString();
                    }
                    //--></script>

                    Das Script wird trotzdem jedes Mal aufgerufen. Die Reloadsperre funktioniert nicht.

                    Hiiilfe..

                    Gruss Alex.

                    1. Sorry, es muss natürlich dann so heißen:

                      </\script>

                      Micha

                      1. Hallo Micha,

                        Sorry, es muss natürlich dann so heißen:
                        </\script>

                        hat es irgendeinen Sinn, dass du das »s« auch maskieren willst?

                        Grüße aus Nürnberg
                        Tobias

                        1. ups, das war wohl ein Bierchen zuviel^^

                          Sry!

                          Micha

                          1. ohh.. aber die Lösung "warum funktioniert die Reloadsperre nicht" habe ich immer noch nicht.

                            Kennt denn keiner sich mit JS aus?

                            Gruss Alex.

                            1. Hi Alexender,

                              ohh.. aber die Lösung "warum funktioniert die Reloadsperre nicht" habe ich immer noch nicht.

                              hm, scheint aber dein Problem zu sein, nicht meins ;-))

                              Kennt denn keiner sich mit JS aus?

                              na ja, ich würde mich nicht als JS-Profi bezeichen, aber na gut.

                              Habe dein Script mal so angepasst:

                              if(!document.cookie)
                              {
                                document.write('Hallo!!!')
                                var cend = new Date();
                                var reload = cend.getTime() + (60 * 60 * 1000);
                                cend.setTime(reload);
                                document.cookie = "reload=block; expires=" + cend.toGMTString();
                              }

                              Da hat das Script (getestet mit Mozilla und IE 6) einwandfrei funktioniert - nur beim ersten Seitenaufruf wurde "Hallo!!!" ausgegeben.

                              Somit hätten wir also das Problem schon mal eingegrenzt. Erstelle nun mal ein Script, nenne es test.js, tue es in den gleichen Ordner wie die Datei und binde es (wie du es gemacht hast) ein. In das Script kommt:

                              alert("Ich bin das Script!");

                              Dann probier mal, ob das funktioniert, wenn es funktionieren sollte, dann scheint da was mit dem Script welches zu einbinden willst nicht i.O. zu sein, ansonsten geht da irgendwas mit dem einbinden des Scriptes schief - dann weiß ich aber auch nicht weiter ;-)

                              MfG, Dennis.

                              --
                              Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
                              Zufällige Hinweise:
                              ------------------------
                              Antworten per E-Mail gibts hier nicht!
                      2. </\script>

                        Das glaube ich nicht. Bin zwar kein JS Profi, aber viele andere Sprachen sind mir sehr gut bekannt und ein \ vor dem "s" hat hier nichts verloren.

                        Gruss Alex.

                2. Warum nimmst du nicht irgendeine serverseitige Technik, wie z.B. PHP. Damit kannst du auch ein Cookie setzen, welches du dann bsp. so lange gültig lassen kannst, wie das Browserfenster geöffnet ist (oder natürlich auch eine festgelegte Zeit).

                  Das ist natürlich eine gute Alternative, doch leider in meinem Fall ungeeignet. Seiten, wo diese Aufrufsperre eingebaut werden soll, werden statisch gecached um die DB-Belastung zu mindern. Deshalb suche ich nach einer JS-Lösung bzw. einer Lösung, die in statischen Seiten funktioniert.

                  Gruss Alex.

  2. Hi Alexender,

    ich möchte ein Popup bei mir Aufgehen lassen, von einer Firma, die für PopUps zahlt. Leider wir ein PopUp bei jeder Seite aufgerufen. Ich will da eine JS-Reloadsperre einbauen, die entweder anhand von IP oder Cookie funktioniert.

    was sagen die AGB der Firma über deinen Wunsch?

    Grüße,
     Roland