JavaScript im Safari
Micha
- browser
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
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
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
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
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
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
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
Hallo,
erzeuge nun testweise das Bild über createElement("img"); so richtig Hoffnung habe ich trotzdem nicht.
Mit freundlichem Gruß
Micha
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");
undthis.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:
Nur der Link zur Auflösung fehlt.
Roland
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");
undthis.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:
Nur der Link zur Auflösung fehlt.
Roland
Mit freundlichem Gruß
Micha
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
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
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