Micha: JavaScript im Safari

Hallo,

Anfang des Jahres hatte ich bereits hierzu einen Thread, in dem ich die Ursache für die mangelde Unterstützung eines meiner Scripte im Safari-Browser in Erfahrung bringen wollte. Es stellte sich heraus, das es nicht direkt mein Script war, sondern ein Drag&Drop-Script, welches ich eingesetzt habe.

Kürzlich fand ich dann den Hinweis auf ein anderes - zu meinem Problem besser passendes - Script hier im Forum von Mathias und wahsaga. Dieses habe ich nun verbaut. Da ich natürlich immer noch kein Safari-Browser habe, bleibt also noch zu klären: Gehts jetzt?

Kann als mal bitte einer das Sudoku-Puzzle probieren - der Focus sollte auf dem (hoffentlich funktionierenden) Schieberegler liegen - und mir dann eine Rückmeldung zukommen lassen?

Mit freundlichem Gruß
Micha

  1. Safari-Browser […] Kann als mal bitte einer das Sudoku-Puzzle probieren - der Focus sollte auf dem (hoffentlich funktionierenden) Schieberegler liegen - und mir dann eine Rückmeldung zukommen lassen?

    Safari 2.0.4: kein Sudoku erscheint
    WebKit Rev. 20226: alles funktioniert

    Roland

    --
    Mädels finden Pinguine niedlich. Männer freilich stehen auf Großkatzen.
    1. Hallo Orlando,

      Safari 2.0.4: kein Sudoku erscheint

      Oh, ein Schritt zurück ;-) Vorher ging wohl nur der Regler nicht. Bekommst Du eine Fehlermeldung?

      WebKit Rev. 20226: alles funktioniert

      Schön, Danke!

      Mit freundlichem Gruß
      Micha

      1. Safari 2.0.4: kein Sudoku erscheint

        Oh, ein Schritt zurück ;-) Vorher ging wohl nur der Regler nicht. Bekommst Du eine Fehlermeldung?

        Undefined value
          http://derletztekick.com/sudoku_js.js
          Line 124

        Roland

        --
        Mädels finden Pinguine niedlich. Männer freilich stehen auf Großkatzen.
        1. Hallo Orlando,

          jetzt bin ich baff. Das:

          Undefined value
            http://derletztekick.com/sudoku_js.js
            Line 124

          ist die selbe fehlermeldung, die Jeena seinerzeit auch hatte. Lauf mir jetzt bloß nicht weg ;-)

          Dann muss ich meine Frage von damals widerhilen: Kann Safari folgendes umsetzen?
          obj.style.cursor = "e-resize";

          Bevor Du das nun extra testest, ich habe die Zeile mal auskommentiert. Könntest Du noch mal bitte schauen?

          Mit freundlichem Gruß
          Micha

          1. Lauf mir jetzt bloß nicht weg ;-)

            Eigentlich wollte ich mich soeben auf den Weg machen, ein paar Eisenstangen zu verbiegen. ;-)

            Kann Safari folgendes umsetzen?
            obj.style.cursor = "e-resize";

            Ja, denn javascript:document.body.style.cursor="e-resize"; funktioniert problemlos.

            Bevor Du das nun extra testest, ich habe die Zeile mal auskommentiert. Könntest Du noch mal bitte schauen?

            Jetzt erscheint der Schieberegler. Sonst allerdings nichts.

            DOM Exception 8
              http://derletztekick.com/sudoku_js.js
              Line 133

            Roland

            --
            Mädels finden Pinguine niedlich. Männer freilich stehen auf Großkatzen.
            1. Hallo Orlando,

              Eigentlich wollte ich mich soeben auf den Weg machen, ein paar Eisenstangen zu verbiegen. ;-)

              Gut, das ich Dich vor der schweißtreibenden Arbeit schützen konnte (-:

              Ja, denn javascript:document.body.style.cursor="e-resize"; funktioniert problemlos.

              Gut, zur Not kann ich auf das auch verzichten.

              Jetzt erscheint der Schieberegler. Sonst allerdings nichts.

              DOM Exception 8
                http://derletztekick.com/sudoku_js.js
                Line 133

              Hmm...

                
              if (Level == null) {  
               this.setLevel(4);  
               ParentEl.appendChild(this.Range);  
               this.Range.appendChild( this.Controller ); //Zeile 133  
              } 
              

              Level ist beim starten (initialisieren) null. Range ist ein DIV mit der "Skala" und Controller ist der Gnubbel, den man eigentlich schieben kann/sollte.

              this.Range = document.createElement("div"); und this.Controller = new Image(9,16);

              Ich hatte Range, bevor es das DIV-Element wird, als Object() initialisiert, das habe ich mal auf null gesetzt. Kann mir zwar nicht vorstellen, das es das ist aber naja. Schaust noch mal bitte? wenn Dir auch was einfällt, ich bin für alles offen.

              Mit freundlichem Gruß
              Micha

              1. Hallo,

                erzeuge nun testweise das Bild über createElement("img"); so richtig Hoffnung habe ich trotzdem nicht.

                Mit freundlichem Gruß
                Micha

              2. Eigentlich wollte ich mich soeben auf den Weg machen, ein paar Eisenstangen zu verbiegen. ;-)
                Gut, das ich Dich vor der schweißtreibenden Arbeit schützen konnte (-:

                Nach einer kurzweiligen Unterzuckerung samt Übersäuerung bin ich schon wieder da. ;-)

                this.Range.appendChild( this.Controller ); //Zeile 133 alt
                this.Range = document.createElement("div"); und this.Controller = new Image(9,16); // neu

                Kann mir zwar nicht vorstellen, das es das ist aber naja. Schaust noch mal bitte?

                Glückwunsch, jetzt funktioniert es:

                Sudoku in Safari 2.0.4

                Nur der Link zur Auflösung fehlt.

                Roland

                --
                Mädels finden Pinguine niedlich. Männer freilich stehen auf Großkatzen.
                1. Hallo Orlando,

                  Eigentlich wollte ich mich soeben auf den Weg machen, ein paar Eisenstangen zu verbiegen. ;-)
                  Gut, das ich Dich vor der schweißtreibenden Arbeit schützen konnte (-:

                  Nach einer kurzweiligen Unterzuckerung samt Übersäuerung bin ich schon wieder da. ;-)

                  this.Range.appendChild( this.Controller ); //Zeile 133 alt
                  this.Range = document.createElement("div"); und this.Controller = new Image(9,16); // neu

                  Kann mir zwar nicht vorstellen, das es das ist aber naja. Schaust noch mal bitte?

                  Glückwunsch, jetzt funktioniert es:

                  Sudoku in Safari 2.0.4

                  Nur der Link zur Auflösung fehlt.

                  Roland

                  Mit freundlichem Gruß
                  Micha

                2. Hallo Orlando,

                  das andere Posting wollte ich gar nicht absenden, da war ich wohl voller Freude über Deine Nachricht ;-), kannst Du löschen.

                  Glückwunsch, jetzt funktioniert es:

                  Aha, das ist ja interessant. Ich habe zwei Sachen geändert.

                    
                   Sudoku = {  
                   startTime : new Date(),  
                   counter : 1,  
                   hoodedFields : 0,  
                   SudokuType : 0,  
                   //Range : new Object(),  //Range nicht mehr global  
                   Controller : null,       //null statt new Image()  
                   SD : new Array(),  
                   solvingSD : new Array(),  
                   initSudoku : function(ST, Level){  
                         //...  
                         var Range = document.createElement("div");  
                         this.Controller = document.createElement("img");        //...
                  

                  Also entweder man kann außerhalb einer Funktion keine Objekte erzeugen oder Safari hat probleme mit dem Image-Objekt. Vermutlich wird aber das erste bereits gereicht haben; also die Initialisierung in die Funktion zu setzen...

                  Nur der Link zur Auflösung fehlt.

                  Das ist komisch. Das ist eine 1zu1 Kopie vom "Link" Neues Spiel mit dem Unterschied, das beim berechnen eines Spiels dort eben nichts steht. Ich habe nun mal GPL reingeschrieben. Reicht das aus? Den Cursor habe ich auch wieder hinzugefügt.

                  Mit freundlichem Gruß
                  Micha

                  1. Also entweder man kann außerhalb einer Funktion keine Objekte erzeugen oder Safari hat probleme mit dem Image-Objekt. Vermutlich wird aber das erste bereits gereicht haben; also die Initialisierung in die Funktion zu setzen...

                    Wenn ich nur etwas Ahnung von JavaScript hätte …

                    Nur der Link zur Auflösung fehlt.
                    Das ist komisch. Das ist eine 1zu1 Kopie vom "Link" Neues Spiel mit dem Unterschied, das beim berechnen eines Spiels dort eben nichts steht. Ich habe nun mal GPL reingeschrieben. Reicht das aus?

                    Ja, jetzt ist er wieder da.

                    Den Cursor habe ich auch wieder hinzugefügt.

                    Dito. Somit funktioniert Sudoku auch in aktuellen Safaris.

                    Roland

                    --
                    Mädels finden Pinguine niedlich. Männer freilich stehen auf Großkatzen.
                    1. Hallo Roland,

                      Wenn ich nur etwas Ahnung von JavaScript hätte …

                      Wo Du nachlesen kannst, weißt Du ja selbst am Besten ;-)
                      Ggf. weiß Molily hier was genaues...

                      Dito. Somit funktioniert Sudoku auch in aktuellen Safaris.

                      Schön! Vielen Dank für Deine ausdauernde Hilfe!

                      Mit freundlichem Gruß
                      Micha