Fritz: Ist Opera (6.05) DHTML fähig? Browserweiche

Hallo,

Ist Opera (6.05) DHTML fähig?
Wenn ich (mit Op6.05) den Test aus SELFHTML
http://selfhtml.teamone.de/dhtml/beispiele/anzeige/dhtmltest.htm
starte, dann wird DHTML aktiviert gemeldet.

Aber das Beispiel
http://selfhtml.teamone.de/dhtml/beispiele/datumuhr.htm
krieg ich nicht zum Laufen, obwohl dort explizit eine Browserweiche für den Opera vorgesehen ist.

Hat jemand eine Idee, woran es liegt? Ist das Beispiel für ältere Operaversionen geschrieben? Wie müßte es für 6.05 geändert werden?

Gruß Fritz

  1. Hallo,

    Ist Opera (6.05) DHTML fähig?
    Wenn ich (mit Op6.05) den Test aus SELFHTML
    http://selfhtml.teamone.de/dhtml/beispiele/anzeige/dhtmltest.htm
    starte, dann wird DHTML aktiviert gemeldet.

    Aber das Beispiel
    http://selfhtml.teamone.de/dhtml/beispiele/datumuhr.htm
    krieg ich nicht zum Laufen, obwohl dort explizit eine Browserweiche für den Opera vorgesehen ist.

    Hat jemand eine Idee, woran es liegt? Ist das Beispiel für ältere Operaversionen geschrieben? Wie müßte es für 6.05 geändert werden?

    Opera kann (zumindest bis zur 6'er Version) den Inhalt von Layern nicht neu beschreiben. Weder mit innerHTML/text noch mit write().

    Also Opera kann teilweise dHTML aber eine der wichtigen Funktionen kann er nicht.

    Struppi.

  2. Moin!

    Ist Opera (6.05) DHTML fähig?

    Eingeschränkt.

    Wenn ich (mit Op6.05) den Test aus SELFHTML
    http://selfhtml.teamone.de/dhtml/beispiele/anzeige/dhtmltest.htm
    starte, dann wird DHTML aktiviert gemeldet.

    DHTML ist keine atomare Browsereigenschaft. DHTML ist eigentlich nur ein Kunstwort, um die Fähigkeit eines Browsers zu beschreiben, zur Laufzeit per Javascript (oder einer anderen Sprache) dynamisch die Inhalte der HTML-Seite zu ändern.

    Opera kann gewisse Dinge ändern, andere Dinge hingegen nicht. Das Neuschreiben von DIV-Layern über die von der DHTML-Bibliothek benutzte Methode gehört zu den Dingen, die Opera bis Version 6 noch nicht kann. Version 7 kann es.

    Aber das Beispiel
    http://selfhtml.teamone.de/dhtml/beispiele/datumuhr.htm
    krieg ich nicht zum Laufen, obwohl dort explizit eine Browserweiche für den Opera vorgesehen ist.

    Die Browserweiche ist deshalb da, um zumindest das zu realisieren, was Opera kann. Darunter fallen z.B. Änderung der Hintergrundfarbe sowie positionieren, verstecken und anzeigen von Layern. Das ist wenig, aber auch damit kann man prima Webseiten machen.

    Hat jemand eine Idee, woran es liegt? Ist das Beispiel für ältere Operaversionen geschrieben? Wie müßte es für 6.05 geändert werden?

    Ältere Opera-Versionen kriegen es auch nicht hin. Das Skript verwendet einfach einen für Opera unmöglichen Ansatz.

    Wenn du eine Uhr realisieren willst und die Anzeige _nicht_ in einem Formularfeld erscheinen soll, dann könntest du einfach ein paar positionierte, versteckte Layer für die einzelnen Ziffern definieren, die alle am gleichen Ort  erscheinen, so dass sich eine Uhrzeitanzeige ergibt, und dann je nach Zeit die richtigen Ziffern anzeigen. Die Ziffern-Layer ließen sich sogar beim Seitenladen dynamisch ins Dokument schreiben, so dass du damit nichts zu tun hast (außerdem ist dieser Ansatz auch deshalb schlau, weil die Uhr ohne Javascript ja ohnehin nicht läuft - also wird ohne Javascript auch nicht rumgelayert).

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
  3. Hallo,

    Ist Opera (6.05) DHTML fähig?
    Wenn ich (mit Op6.05) den Test aus SELFHTML
    http://selfhtml.teamone.de/dhtml/beispiele/anzeige/dhtmltest.htm
    starte, dann wird DHTML aktiviert gemeldet.

    Dort wird lediglich geprueft, ob der Browser die DOM-Methode getElementById() kennt (Zitat aus dhtml.js):

    if(document.getElementById) {
       DHTML = 1;
       DOM = 1;
     }

    Um etwas mehr ueber die DOM-Faehigkeiten herauszufinden, die auch Grundlage fuer DHTML-Anwendungen sind, waere diese Abfrage geeignet (natuerlich noch weiter ausbaufaehig):

    var test1,test2,test3,test4,test5;
    test1=(document.documentElement)?1:0;
    test2=(document.createElement)?1:0;
    test3=(document.appendChild)?1:0;
    test4=(document.getElementById)?1:0;
    test5=(document.getElementsByTagName)?1:0;

    if(test1 && test2 && test3 && test4 && test5)alert("Der Browser erscheint fuer DOM und DHTML geeignet.");

    Einige praktische Tests werden hier gezeigt: http://www.styleassistant.de/tips/w3cdom.htm, wobei Opera < 7 wenig Erfolg hat.

    MfG, Thomas