Michael Kleinhans: Opera 5.x ... allgemein

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?

  1. 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

  2. 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

    1. 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

      1. 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

        1. 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

          1. 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

            1. 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

              1. 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

  3. 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

    1. 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

      1. 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

        1. 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

        2. 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