Philipp Schächtele: Opera & DHTML

Hallo,

ich hab nicht wirklich sooo viel Ahnung von JavaScript und DHTML.

Im Internet Explorer kann man recht leicht auf HTML-Code zwischen zwei Tags (z.B. <span id="huhu"> der code </span> ) zugreifen und diesen ändern, z.B. mit "innerHTML" oder oder auch über das Node-Objekt.

Mir ist aber keine Funktion oder kein Objekt bekannt, mit dem ich im Opera ähnlich Möglichkeiten besitzte. Um Netscape hab ich mich noch gar nicht gekümmert, der wird dort, wie ich ihn so kenne auch seine Problemchen haben.

Ich habe mir die Opera JS/DOM-Spezifikation angeschaut, dort aber auch nichts hilfreiches gefunden, SelfHTML ist zwar wunderbar umfangreich :) aber keine der vielen Möglichkeiten so etwas mit dem IE umzusetzten ist mit dem Opera möglich.
http://www.opera.com/docs/specs/js/

Der Hintergrund (muss nicht gelesen werden, nur zum Verständnis):
Ich benötige dies für ein Servertraffic schonendes Chat-Client Script, das mit zwei iFrames abläuft. Das eine, unsichtbare wird von der Hauptseite per JS imer refresht, gibt es neue Nachrichten sieht das in diesem iFrame dann so aus:
<span id="messages"> ... chatnachrichten ... </span>
ansonsten bleibt es leer. Wenn es nicht leer ist werden die Nachrichten aus dem Tag gelesen und im iFrame, dass die Chathistory enthält hintenangefügt.
Mit dem IE alles kein Problem: Schleife Intervallmäßig aufrufen, mit innerHTML nahschauen, obs im Fenster was neues gibt, mit insertAdjacentHTML() das neue im andern iFrame anfügen, 5 Zeilen oder so.. kinderkram...

Aber wie lauten parralele Funktionen, Objekte oder Möglichkeiten, das ganze mit andern Browsern (in erster Linie Opera 6, irgendwann noch NC 6, wenn möglich auch den 4.x, aber das ist im Moment nicht mein Problem ... )

Vielen Dank schon einmal für eure Hilfe & schönes Wochenende,
Philipp Schächtele

  1. Hallo,

    Aber wie lauten parralele Funktionen, Objekte oder Möglichkeiten, das ganze mit andern Browsern (in erster Linie Opera 6, irgendwann noch NC 6, wenn möglich auch den 4.x, aber das ist im Moment nicht mein Problem ... )

    Nutze die W3C-DOM-Methoden, wenn es moeglich ist bzw. ueberhaupt Sinn macht. Der IE ab 5, Netscape 6.x und Mozilla machen da eine gute Figur, Opera kennt nur ansatzweise DOM, d. h. die gaengigen Zugriffsmethoden wie getElementById(), getElementsByTagName() und getElementsByName(). Man kommt aber´nicht viel weiter als bis zu Stylesheet-Eigenschaften.

    Großartige Workarounds gibt es da nicht. Opera kann man nicht zum dynamischen Aendern von Inhalten bewegen, NN 4.x gerade noch so zum Schreiben von Layerobjekt-Inhalten.

    Schau Dir mal dieses Beispiel an, welches ich gerade fuer ein DOM-Seminar erstellt habe, um die wichtigsten Dinge anschaulich erklaeren erklaeren zu koennen (auch die breiteste Tafel ist da schnell voll ;-)
    http://www.styleassistant.de/tips/w3cdom.htm

    Auch wenn manche Dinge im HTML-Browser nicht taugen, machen DOM-Kenntnisse Sinn, vor allem bei der Verarbeitung von XML-Daten.

    MfG, Thomas

    1. Hallo,

      Großartige Workarounds gibt es da nicht. Opera kann man nicht zum dynamischen Aendern von Inhalten bewegen, NN 4.x gerade noch so zum Schreiben von Layerobjekt-Inhalten.

      Na Schade, dann werde ich meine Pläne fallen lassen. Denn wenn ich selber ausschließlich den Opera verwende, werde ich sicher nichts Entwickeln, was mein eigener Browser nicht versteht ...

      http://www.styleassistant.de/tips/w3cdom.htm

      Opera hat gerade einmal die oberste Funktion beherrscht ... :) Zitat von Opera.com :  "and intend to support DOM level 2 fully" Beeilung bitte ... Naja schade, das so wichtige Dinge nicht möglich sind.

      Wäre denn ein einlesen der Inhalte möglich? Dann könnte man die Seite ja jedes mal komplett neu erstellen lassen ...

      Auch wenn manche Dinge im HTML-Browser nicht taugen, machen DOM-Kenntnisse Sinn, vor allem bei der Verarbeitung von XML-Daten.

      Mit XML bin ich, seit ich vor 2 Jahren mal ein Tutorial darüber zu lesen begonnen hatte nie wieder in der Praxis begegnet, aber weil ich vorallem PHP udn Datenbanken mache, werd ich da in den nächsten Jahren mal wieder darrauf stoßen :)

      Vielen Dank für deine Reaktion,
      Philipp

      1. Hallo,

        Wäre denn ein einlesen der Inhalte möglich? Dann könnte man die Seite ja jedes mal komplett neu erstellen lassen ...

        Einlesen per JavaScript wuerde ja wiederum Zugriff mittels nodeValue oder innerHTML erfordern ...

        Mit XML bin ich, seit ich vor 2 Jahren mal ein Tutorial darüber zu lesen begonnen hatte nie wieder in der Praxis begegnet, aber weil ich vorallem PHP udn Datenbanken mache, werd ich da in den nächsten Jahren mal wieder darrauf stoßen :)

        PHP bietet auch Moeglichkeiten zur Verarbeitung von XML.

        MfG, Thomas