Opera 5.x ... allgemein
Michael Kleinhans
- javascript
Hoi Leude ...
Hat einer von euch schonmal Javascript/ECMAScript auf den Operabrowser optimiert? Ich habe jetzt massenweise Code für IE und NN geschrieben - und dachte jetzt, ich check das der Nettigkeit halber mal für Opera, um wenigstens einen weniger bekannten Broswer zu unterstützen - ih. Nix geht mehr.
Aber Opera ist in SelfHTML nicht so erwähnt. Was tut man jetzt?
Hallo Michael,
Hat einer von euch schonmal Javascript/ECMAScript auf den Operabrowser optimiert? Ich habe jetzt massenweise Code für IE und NN geschrieben - und dachte jetzt, ich check das der Nettigkeit halber mal für Opera, um wenigstens einen weniger bekannten Broswer zu unterstützen - ih. Nix geht mehr.
Aber Opera ist in SelfHTML nicht so erwähnt. Was tut man jetzt?
man probiert ...
und liest nach ...
http://www.opera.com/opera5/specs.html
http://www.searchengineworld.com/opera/
http://www.geocities.com/quhno/Opera/index.html
und grübelt ... und flucht ...
und schaut sich die PurpurHain Seiten mit dem Opera an - aber erst ab 5.11 aufwärts :-)
(wobei noch nicht alles so wie bei den beiden großen (=NS/MSIE) funktioniert)
Viele Grüße Günter
Hoi Leude ...
Hat einer von euch schonmal Javascript/ECMAScript auf den Operabrowser optimiert? Ich habe jetzt massenweise Code für IE und NN geschrieben - und dachte jetzt, ich check das der Nettigkeit halber mal für Opera, um wenigstens einen weniger bekannten Broswer zu unterstützen - ih. Nix geht mehr.
Aber Opera ist in SelfHTML nicht so erwähnt. Was tut man jetzt?
Opera kann mit Javascript genauso gut umgehen wie alle anderen Browser. Der Unterschied besteht im DOM, also der Art, wie man unter Javascript auf die Seitenelemente wie Layer etc. zugreifen kann.
Der zentrale Befehl dazu: getElementById.
Mit document.getElementById["id"] kriegt man genau das, was unter IE mit document.all.id zu finden ist. Insbesondere lassen sich Layer mit document.getElementById["layerid"].style.visibility = "visible/hidden" zeigen und verstecken. Andere Styles sind analog zu setzen.
Unter http://www.opera.com/docs/specs/js/ findest du alle Objekte, die Opera unterstützt.
Eine Anpassung auf getElementById ist übrigens sinnvoll. Netscape 6 und Mozilla sowie IE ab Version 5 unterstützen diese Art des Zugriffs, so daß solcher Javascript-Code gleich in mehreren Browsern läuft.
- Sven Rautenberg
Hallo Swen
Opera kann mit Javascript genauso gut umgehen wie alle anderen Browser. Der Unterschied besteht im DOM, also der Art, wie man unter Javascript auf die Seitenelemente wie Layer etc. zugreifen kann.
du kannst wirklich noch keine großen Sachen für Opera gemacht haben, sonst würdest du diese Aussage nicht äußern.
Gruß
Antje
Hallo Swen
Opera kann mit Javascript genauso gut umgehen wie alle anderen Browser. Der Unterschied besteht im DOM, also der Art, wie man unter Javascript auf die Seitenelemente wie Layer etc. zugreifen kann.
du kannst wirklich noch keine großen Sachen für Opera gemacht haben, sonst würdest du diese Aussage nicht äußern.
Gruß
Antje
Nun ja, die Sachen, die ich für gewöhnlich mache, laufen sowieso in allen Browsern, weil sie Standard-HTML verwenden und Javascript nur zum Anreichern, wenn überhaupt. Deshalb reagiere ich auch immer mit großem Unverständnis, wenn Leute behaupten, Opera könne kein Javascript u.ä. Wäre es wirklich so, dann würde ich ja praktisch keine einzige Seite sehen können. ;)
<Provokation>Mag sein, daß Opera gewisse, sehr spezielle Funktionen anderer Browser (oder sagen wir besser: des Internet Explorers?) nicht bietet. Aber wer braucht die schon?</Provokation>
- Sven Rautenberg
Hallo Sven!
<Provokation>Mag sein, daß Opera gewisse, sehr spezielle Funktionen anderer Browser (oder sagen wir besser: des Internet Explorers?) nicht bietet. Aber wer braucht die schon?</Provokation>
<auchprovokation>
Sorry, aber dies zeugt nur von Unkenntnis der Materie oder von (positivem) Vorurteil fuer Opera. Die im anderen Posting von Antje aufgelisteten JavaScript-Anweisungen sind schlicht und einfach JavaScript, nix Netscape-JavaScript, nix IE-JavaScript. Einfach: JavaScript.< />
Und da muss Opera leider passen.
Patrick
Hallo Sven!
Hallo, Patrick!
<auchprovokation>
Sorry, aber dies zeugt nur von Unkenntnis der Materie oder von (positivem) Vorurteil fuer Opera. Die im anderen Posting von Antje aufgelisteten JavaScript-Anweisungen sind schlicht und einfach JavaScript, nix Netscape-JavaScript, nix IE-JavaScript. Einfach: JavaScript.< />
Und da muss Opera leider passen.
Tja, und wer listet die kleinen und großen Problemchen der anderen Browser auf?
Ich gebe es zu: Ich hab' gerade mal ein Projekt gemacht, bei dem ein Menü mit Layern und Javascript in allen Browsern lief. Also Netscape, IE und Opera, sowohl PC als auch Mac. Ich kann nicht behaupten, daß mich nun gerade Opera besonders geärgert hat.
Ganz im Gegenteil: Netscape 4 kriegt Mouseovers nur bei Links hin, und IE für Mac muß bei der Positionierung eines Layers "px" an die Zahl angehängt bekommen. Das sind zwei ebenfalls eklige Einschränkungen bzw. Ungereimtheiten, die hier nur als Beispiel angeführt sind.
Und natürlich bin ich subjektiv: Opera ist eben mein Standardbrowser, weil er viele Features hat, die die anderen nicht haben - sowohl für den normalen Surfer, als auch für den Entwickler. Da ist es dann nur verständlich, wenn ich ein wenig für "meinen" Browser werbe. Immerhin 5-6% der Besucher meiner Seite benutzen den schon. ;)
- Sven Rautenberg
Hallo Sven!
Immerhin 5-6% der Besucher meiner Seite benutzen den schon. ;)
Tendenz sogar steigend habe ich festgestellt... Ich habe den Browser mittlerweile auch (in der - aktuellen - Version 5.12) und finde ihn auch "nicht schlecht". Doch muss man Caesar zurueckgeben was Caesar gehoert, oder in dem Fall nicht gehoert: in Sachen JavaScript hinkt der Norwege (oder ist das ein "alter" Schwede? *g*) etwas hinterher... Auch laestig: unsichtbare Frames sind aufgrund der Ladestandanzeige (die sich oberhalb der Statusleiste aufbaut, so diese unten eingestellt ist, solange eine Seite geladen ist) sind eben *nicht* unsichtbar, weil eben nach unten der Platz, den diese Leiste braucht, freigehalten wird, und somit ein kleiner Teil des Framefensters, das unsichtbar sein sollte, doch noch zu sehen ist (siehe atomic-eggs.com).
Einen Besuch wert ist (in Sachen JavaScript immer): http://netz-notizen.de/javascript/jsanf.htm
Patrick
Hi Patrick,
Einen Besuch wert ist (in Sachen JavaScript immer): http://netz-notizen.de/javascript/jsanf.htm
wollte mir das gerade mal anschauen, wirklich ohne böse Absicht,
aber dort zeigt es sich als absolut abschreckendes Beispiel.
Aber, man kann ja aus den Fehlern anderer mitunter auch viel lernen:
"Ihr Browser ist leider nicht in der Lage, das Ursprungsfenster von hier aus anzusteuern.
Bitte benutzen Sie für die Links das Menü."
und auch sehr schön:
"Sie haben leider die JavaScript-Notizen bereits verlassen!"
Mit dem folgenden Text der Menuseite wird das Ganze dann zur Realsatire,
offenbar ist man unversehens bereits mitten in's erwähnten Spiel gelangt:
' Und nicht zuletzt kann man jetzt von hier
aus auch die Spiele erreichen, die ich für
den Adventskalender der "Blinden Kuh"
programmiert habe. '
Grüsse
Cyx23
Hallo Michael
Hat einer von euch schonmal Javascript/ECMAScript auf den Operabrowser optimiert?
ich habe vor kurzem eine Menuesteuerung geschrieben, die relative positionierte Layer verwendet. Die ist auch für Opera optimiert. Der Operacode ist dabei umfangreicher als der NN 4-Code, was eigentlich schon alles sagt.
Zusammenfassend, es ist ein Kreuz für diesen Browser etwas zu schreiben. Er kann zuwenig und nicht alles was er laut Dokumentation können sollte. Zumindest in der Version 5.1
Mängel sind unter anderem:
ändert keine backgroundColor von Divs
hat arge Problem relativ positionierte Divs zu verschieben
falsche Vererbung der Visibilityeigenschaft in verschachtelten Div
kein Zugriff auf die Kinderelemente (getElementsByTagName() liefert keine Collektion als Array)
den bekannten Resizebug vom NN4 kennt Opera auch
Opera kennt aber nicht den Eventhandler onresize
arge Probleme mit setTimeout und setInterval
for in - Schleife zum Abfragen der Objekteigenschaften ist nicht implementiert
assoziative Arrays mit dem Wert 0 gelten als nicht vorhanden (z.B. assArray["test"]=0)
dynamisches Ändern von Inhalte ist nicht möglich
style.display ist nicht bekannt
new Option ist unbekannt
window.open("about:blank" ...) ist unbekannt
window.open("" ...) sorgt für Fehler
und und und...
Mein Tipp:
willst du für Opera JS schreiben, dann gehe in etwa davon aus, du schreibst für einen extrem minderbemittelten NN4 im DOM-Syntax
Aber Opera ist in SelfHTML nicht so erwähnt. Was tut man jetzt?
Try and Error, das hilft
Viele Grüße
Antje
hallo,
hier spricht auch ein opera-liebhaber :o)
der grund:
opera ist der einzige browser, der sich an den W3C standard hält!
keine spezial-schnick-schnack-kacke, wie IE und NS meinen, haben zu müssen.
das ist doch mal ein ansatz, oder?
jammern nicht alle immer über die speziellen eigenheiten der verschiedenen browser, weil die hersteller immer ihr eigenes süppchen kochen?
da ist es doch klasse, dass es endlich mal einen hersteller gibt, der schluss macht mit dem ganzen getue. darüber hinaus bietet opera viele funktionen hinsichtlich der benutzerfreundlichkeit, bei denen andere um längen nicht mithalten können.
es lebe opera! und hoffentlich stirbt netscape aus, denn das ist doch nun wirklich der allerletzte schrott...
euer mogwai
Hi Mogwai
hier spricht auch ein opera-liebhaber :o)
naja ich denke diese Mode vergeht auch bald wieder
opera ist der einzige browser, der sich an den W3C standard hält!
was zu beweisen wäre,
Mozilla gehört ja auch in die Kategorie und der ist wesenlich freundlicher
außerdem ist wohl besser gesagt, an den Standard halten will
keine spezial-schnick-schnack-kacke, wie IE und NS meinen, haben zu müssen.
hat er nicht?
hm, was ist denn dann zum Beispiel das Operaobjekt, ein unbekannter Standard?
jammern nicht alle immer über die speziellen eigenheiten der verschiedenen browser, weil die hersteller immer ihr eigenes süppchen kochen?
bislang bereitet der "eigenheitslose" Browser mehr Aufwand als die mit Eigenheiten z.B. ein Progammcode der jeweils das gleiche bewirkt IE/NN6 12, NN 4 126 und Opera 195 Codezeilen
es lebe opera! und hoffentlich stirbt netscape aus, denn das ist doch nun wirklich der allerletzte schrott...
<g> Lustig eine neue Front im Browserkrieg.
Trotzdem, Opera ist noch sehr weit von einem ernstzunehmenden Browser entfernt, da helfen auch die sogenannten Feature nichts.
Viele Grüße
Antje
Hallo Antje,
Trotzdem, Opera ist noch sehr weit von einem ernstzunehmenden Browser entfernt, da helfen auch die sogenannten Feature nichts.
vor allem ist es schwer für Opera mit JavaScript workarounds so einzubauen,
daß spätere Operaversionen kein neues Überarbeiten der Seite erfordern.
Grüße
Cyx23
hm, was ist denn dann zum Beispiel das Operaobjekt, ein unbekannter Standard?
Das Opera-Objekt ist etwas, was man sicherlich nicht benutzen sollte. Aber damit könnte man z.B. relativ schnell feststellen, ob man einen Opera vor sich hat: if (opera) {...}
bislang bereitet der "eigenheitslose" Browser mehr Aufwand als die mit Eigenheiten z.B. ein Progammcode der jeweils das gleiche bewirkt IE/NN6 12, NN 4 126 und Opera 195 Codezeilen
Mich würde wirklich sehr interessieren, was du da spezielles gewollt hast. Gibts das im Netz zu sehen?
Trotzdem, Opera ist noch sehr weit von einem ernstzunehmenden Browser entfernt, da helfen auch die sogenannten Feature nichts.
Tja, diese Frage werden wir heute und in den nächsten Jahren nicht geklärt bekommen. Das haben schon Diskussionen um "Mac vs. PC", "Windows vs. Linux" und "NS vs. IE" nicht geschafft.
- Sven Rautenberg