Schlappy: Probleme beim Pop Up öffnen an bestimmten Tagen

Guten Morgen,

vorab, ich habe null Ahnung von Javascript. Für die Funktion, die ich brauchte, hatte ich einen frei runterladbaren Adventskalender genommen und den verändert.

Leider klappte das nicht so, wie ich wollte. Und wahrscheinlich steht viel Mist im Quellcode.

Kann mir trotzdem jemand weiterhelfen? Die Seite muss ab morgen richtig laufen und ich habe mich gestern schon durch "Selfhtml" gewühlt.
http://www.friedenskirche-ms.de/fastenbrevier_2013/kalender.htm

Die Tage sollen einzeln anklickbar sein  - also nur am 13.Februar sollte das Fenster mit dem richtigen Text aufgehen. Am 13. Februar dürfen aber nicht die nachfolgenden Fenster zu öffnen sein - dann sollte eigentlich das Fenster mit der Datei 0.htm aufgehen.

Ich weiß nicht, ob ich irgendwo eine Klammer gelöscht habe, oder so etwas - gestern morgen funzte es noch - klar, die Version habe ich dämlicherweise nicht abgespeichert.

"Alte Tage", also, wenn wir den 14. März haben, dann dürfen die vorhergegangenen Tage geöffnet werden.

Der Quelltext ist das reinste Chaos - sorry ...
kann mir bitte einer weiter helfen?

Der Code war zu lang zum einstellen - läßt sich aber einfach von der Seite runterladen.

  1. Hallo,

    Und wahrscheinlich steht viel Mist im Quellcode.

    Definitiv.

    Die Tage sollen einzeln anklickbar sein  - also nur am 13.Februar sollte das Fenster mit dem richtigen Text aufgehen. Am 13. Februar dürfen aber nicht die nachfolgenden Fenster zu öffnen sein - dann sollte eigentlich das Fenster mit der Datei 0.htm aufgehen.

    if(monat==1 && nummer < 13)  
    {  
    	var Info = window.open("0.htm",'Tag','left=10,top=10,screenX=10,screenY=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=300');  
    	return;  
    }  
    
    

    Deine Bedingung zum Anzeigen von 0.htm ist falsch. Bei Klick auf die 12 würde sie passen, nur ist das ja nicht möglich...
    Vermutlich möchtest du diesen Code ohne die Bedingung an das Ende deiner Funktion stellen.

    Ich weiß nicht, ob ich irgendwo eine Klammer gelöscht habe, oder so etwas - gestern morgen funzte es noch - klar, die Version habe ich dämlicherweise nicht abgespeichert.

    Beschäftige dich mit Versionsverwaltung.

    Der Code war zu lang zum einstellen - läßt sich aber einfach von der Seite runterladen.

    Mehr Mühe hab ich jetzt nicht reingesteckt, um zu überprüfen, ob alle Tage gehen, der Code ist zu grausam...

    vg ichbinich

    --
    Kleiner Tipp:
    Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
    1. Hallo,

      Mehr Mühe hab ich jetzt nicht reingesteckt, um zu überprüfen, ob alle Tage gehen, der Code ist zu grausam...

      Nee, alle Tage gehen einfach nicht ... der 1.April geht gar nicht - notfalls mache ich daraus einen direkten Link - ist ja der letzte Tag.

      Am schlimmsten ist noch, dass im März angezeigt wird, dass das Pop Up nicht richtig definiert ist ...

      Danke! allein dafür, dass du in den grausamen Code reingeschaut hast.

      VG
      Schlappy

      1. Hallo,

        ich hab dir die Funktion mal ein bischen umgeschrieben (allerdings auf die Schnelle nur für deinen spezifischen Zeitraum), nun sollte es gehen:

        function s(nr) {  
        	  
        	var datum = new Date(),  
        	    monat = datum.getMonth() + 1,  
        	    tag = datum.getDate(),  
        	    nrHeute = (monat-2)*100 + tag,  
        	    tagGewaehlt = nr%100,  
        	    monatGewaehlt = Math.ceil(nr/100) + 1,  
        	    dateiName = 0;  
        	  
        	if(nr <= nrHeute) {  
        		dateiName = tagGewaehlt + '_' + monatGewaehlt;  
        	}  
        	  
        	var Info = window.open(dateiName + ".htm",'Tag','left=10,top=10,screenX=10,screenY=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=1053,height=800');  
        }  
        
        

        Am schlimmsten ist noch, dass im März angezeigt wird, dass das Pop Up nicht richtig definiert ist ...

        Das liegt daran, dass du im Array descarray die entsprechenden _Indizes_ nicht definiert hast. Schreib besser:

        var descarray = new Array();  
        descarray[13] = 'Text für den 13.2.';  
        descarray[14] = 'Text für den 14.2.';  
        ...  
        descarray[107] = 'Text für den 7.3.';  
        ...  
        descarray[201] = 'Text für den 1.4.';
        

        vg ichbinich

        --
        Kleiner Tipp:
        Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
        1. Hallo ichbinich

          ist nett von dir, dass du dich des verkorksten Codes annimmst - nur leider übersteigt scheinbar das schon meine Fähigkeiten und nun geht gar nichts mehr.

          Wahrscheinlich habe ich irgendwas falsch verstanden, oder an die falsche Stelle gesetzt ?!

          Sorry, bin wohl ein hoffnungsloser Fall

          und nun habe ich auch noch Termine ...

          Danke!
          VG
          Schlappy

          1. Hallo,

            Wahrscheinlich habe ich irgendwas falsch verstanden, oder an die falsche Stelle gesetzt ?!

            An die richtige Stelle gesetzt, nur nicht genug ersetzt.

            Lösche alles nach der eingefügten Funktion von mir (ab Zeile 127 return;) bis vor folgende Zeile:
            // -- Original: Patrick Lewis, mod: W. Jansen

            vg ichbinich

            --
            Kleiner Tipp:
            Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
            1. Hallo,

              ich glaube beim array muss sich auch was falsches eingeschlichen haben ... es geht absolut kein Fensterchen auf :-/ seitdem ich da dran war.

              Den Rest habe ich gelöscht, aber nichts passiert.

              Nett, dass du dir die Zeit nimmst!

              VG
              Schlappy

              1. Hallo,

                Den Rest habe ich gelöscht, aber nichts passiert.

                Nö, noch alles drin...

                vg ichbinich

                --
                Kleiner Tipp:
                Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
                1. Nö, noch alles drin...

                  jetzt aber nicht mehr ... ganz so blöd stelle ich mich aber normalerweise doch nicht an ;-)

                  geht trotzdem nicht

                  *seufz*
                  VG
                  Schlappy

                  1. Hallo,

                    Nö, noch alles drin...
                    jetzt aber nicht mehr ... ganz so blöd stelle ich mich aber normalerweise doch nicht an ;-)

                    geht trotzdem nicht

                    Schon mal in die Fehlerkonsole gesehen:
                    "SyntaxError: return not in function Zeile: 127"

                    Nach der eingefügten Funktion das return noch entfernen...

                    vg ichbinich

                    --
                    Kleiner Tipp:
                    Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
                    1. Hallo ichbinich

                      DANKE!!!

                      vor allem dafür, dass du die Geduld hattest :-)

                      darf ich noch was fragen?

                      so etwas wie die Fehlerkonsole habe ich hier schon verzweifelt versucht zu finden, in der Hoffnung, dass es weiter hilft ... ähm ... weiß aber nicht wo sie ist.

                      Du bist echt Klasse!
                      Danke nochmal

                      VG
                      Schlappy

                      1. Hallo,

                        so etwas wie die Fehlerkonsole habe ich hier schon verzweifelt versucht zu finden, in der Hoffnung, dass es weiter hilft ... ähm ... weiß aber nicht wo sie ist.

                        Firefox: Extras->Web-Entwickler->Fehlerkonsole
                        Internet Explorer: F12->Konsole

                        vg ichbinich

                        --
                        Kleiner Tipp:
                        Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
                        1. Danke ichbinich!

                          Wünsche dir noch einen schönen Nachmittag!

                          VG
                          Schlappy

  2. Moin,

    Der Quelltext ist das reinste Chaos - sorry ...

    Selbst, wenn du den Code bis morgen zum Laufen bewegen kannst: Die weitere Pflege ist IMHO viel mehr Aufwand, als wenn du dir den Code nimmst, anschaust, und dir selbst eine kleine Javascript-Funktion schreibst, die deinen Wünschen entspricht.

    Grüße Marco

    --
    Ich spreche Spaghetticode - fließend.
    1. Moin,

      Der Quelltext ist das reinste Chaos - sorry ...

      Selbst, wenn du den Code bis morgen zum Laufen bewegen kannst: Die weitere Pflege ist IMHO viel mehr Aufwand, als wenn du dir den Code nimmst, anschaust, und dir selbst eine kleine Javascript-Funktion schreibst, die deinen Wünschen entspricht.

      Grüße Marco

      Moin Marco,

      wenn ich nur einen Funken Ahnung hätte, würde ich das machen.
      Habe ich aber leider nicht. Wenn ich mehr Zeit hätte, ja, dann wäre das auch kein Ding ... aber so etwas kommt immer gestern und muss vorgestern fertig sein.

      Trotzdem danke fürs reinlesen!

      VG
      Schlappy