Noby: Firefox -> Javascript -> all

Hallo allerseits,
ich habe folgendes JavaScript-Script gebaut:

Klickst du hier

Kurzer Sinn des Ganzen:
Ich habe einen Text, der nach einem Klick auf selbigen durch einen Iframe mit mehr Content ersetzt werden soll.

Das funktioniert auch wunderbar problemlos im IE und im Opera.
Nur der Firefox, dieser Erbsenzähler, kann es wieder mal nicht, weil der ja nur offizielle Standards unterstützt und auf Kompatibilität scheisst.

However:
Das Problem ist mir klar.
document.all ist eine Microsoft-Erfindung.
Und Firefox mag Microsoft nicht.
Und deshalb unterstützt Firefox keine Microsoft-Erfindungen...
So weit, so schlecht.

Die Frage ist jetzt nur, wie ich das ganze eben auch im Firefox hinbekomme.

Hätte da vielleicht jemand einen Ansatz oder Denkanstoß oderso?
Habe schon vieles versucht, aber dann gibt es immer Probleme mit den HTML-Tags, dass der die entweder ignoriert oder eben wieder gar nichts macht...

Vielen Dank schonmal,
Noby.

P.S.: Dass der M$-IE7 das kann, und FF nicht, spricht wiederum ganz gegen die MS-Firefox-Theorie ;-)

  1. document.getElementById("details").innerHTML = ......;

    geht auch im IE seit version 5.0 und ist standard.

    Hallo allerseits,
    ich habe folgendes JavaScript-Script gebaut:

    Klickst du hier

    Kurzer Sinn des Ganzen:
    Ich habe einen Text, der nach einem Klick auf selbigen durch einen Iframe mit mehr Content ersetzt werden soll.

    Das funktioniert auch wunderbar problemlos im IE und im Opera.
    Nur der Firefox, dieser Erbsenzähler, kann es wieder mal nicht, weil der ja nur offizielle Standards unterstützt und auf Kompatibilität scheisst.

    However:
    Das Problem ist mir klar.
    document.all ist eine Microsoft-Erfindung.
    Und Firefox mag Microsoft nicht.
    Und deshalb unterstützt Firefox keine Microsoft-Erfindungen...
    So weit, so schlecht.

    Die Frage ist jetzt nur, wie ich das ganze eben auch im Firefox hinbekomme.

    Hätte da vielleicht jemand einen Ansatz oder Denkanstoß oderso?
    Habe schon vieles versucht, aber dann gibt es immer Probleme mit den HTML-Tags, dass der die entweder ignoriert oder eben wieder gar nichts macht...

    Vielen Dank schonmal,
    Noby.

    P.S.: Dass der M$-IE7 das kann, und FF nicht, spricht wiederum ganz gegen die MS-Firefox-Theorie ;-)

    1. document.getElementById("details").innerHTML = ......;

      Danke :-)

    2. Hallo,

      document.getElementById("details").innerHTML = ......;

      […] ist standard.

      Das „innerHTML“ ist nicht Standard, wird aber von vielen Browsern unterstützt.

      mfg. Daniel

      1. Hi,

        Das „innerHTML“ ist nicht Standard, wird aber von vielen Browsern unterstützt.

        Genauer: Von allen Browsern die getElementById() unterstützen, sowie noch von anderen ...

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hallo,

          Das „innerHTML“ ist nicht Standard, wird aber von vielen Browsern unterstützt.

          Genauer: Von allen Browsern die getElementById() unterstützen, sowie noch von anderen ...

          Woher willst du das wissen? Da „innerHTML“ für den Browser ein ziemlich aufwändiges Verfahren sein müsste (alle ChildNodes löschen, HTML-String in DOM-Objekte umwandeln, nacheinander einfügen), könnte ich mir durchaus vorstellen, dass es einige, weniger genutzte Browser gibt, die das nicht können.

          mfg. Daniel

          1. Genauer: Von allen Browsern die getElementById() unterstützen, sowie noch von anderen ...

            Woher willst du das wissen? Da „innerHTML“ für den Browser ein ziemlich aufwändiges Verfahren sein müsste (alle ChildNodes löschen, HTML-String in DOM-Objekte umwandeln, nacheinander einfügen), könnte ich mir durchaus vorstellen, dass es einige, weniger genutzte Browser gibt, die das nicht können.

            ja, z.b. frühe FF Versionen.

            Struppi.

            --
            Javascript ist toll (Perl auch!)
            1. Hi,

              ja, z.b. frühe FF Versionen.

              IMHO ein Gerücht.

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          2. hi,

            Da „innerHTML“ für den Browser ein ziemlich aufwändiges Verfahren sein müsste (alle ChildNodes löschen, HTML-String in DOM-Objekte umwandeln, nacheinander einfügen)

            So aufwendig kann es eigentlich nicht sein: Ein paar ChildNodes killen kann so kompliziert nicht sein - und als HTML vorliegenden Code zu parsen und in DOM-Knoten zu übersetzen ist eine Aufgabe, die ein Browser bei so gut wie jeder Webseite, die er anzeigen soll, zu bewältigen hat, ganz unabhängig von Javascript.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
          3. Hi,

            Woher willst du das wissen?

            Die Browser sind ja kein "Geheimprojekt". =;-)

            Es wurde von allen Programmierern für gut befunden, (zeitgleich mit DOM) implementiert, und für die Zukunft kann auch kein Programmierer am faktischen Standard vorbei.

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Hallo,

              Woher willst du das wissen?

              Die Browser sind ja kein "Geheimprojekt". =;-)

              Schon, aber wer weiß, wie viele es da draußen gibt ;-)
              Oder sind Gecko, KHTML, Presto und Trident die einzigen JS/DOM-Fähigen Rendering-Engines?

              mfg. Daniel

  2. Hallo,

    Das funktioniert auch wunderbar problemlos im IE und im Opera.
    Nur der Firefox, dieser Erbsenzähler, kann es wieder mal nicht, weil der ja nur offizielle Standards unterstützt und auf Kompatibilität scheisst.

    Und das ist auch gut so. Genau deshalb ist Firefox auch bestens als Testbrowser geeignet.

    Das Problem ist mir klar.
    document.all ist eine Microsoft-Erfindung.
    Und Firefox mag Microsoft nicht.
    Und deshalb unterstützt Firefox keine Microsoft-Erfindungen...
    So weit, so schlecht.

    Wo liegt denn dein Problem? Das DOM ist *mindestens* genauso mächtig.

    Die Frage ist jetzt nur, wie ich das ganze eben auch im Firefox hinbekomme.

    Ich zitiere mal dein Script:

    <SCRIPT language = "javascript" type = "text/javascript">

    Wozu language? Raus damit!

    var Neu = '<IFRAME src = "infos.php" height = "300" width = "400" border = "0" frameborder = "NO" scrolling = "AUTO"></IFRAME>';

      
    var Neu = document.createElement("iframe");  
    Neu.src = "infos.php";  
    Neu.height = "300";  
    Neu.width = "400";  
    Neu.setAttribute("border","0");  
    Neu.frameBorder = "NO";  
    Neu.scrolling = "AUTO";  
    
    

    function Aendern ()
    {
    document.all.details.innerHTML = Neu;

      
    var el = document.getElementById("details")  
    el.replaceChild(neu,el.firstChild);  
    
    

    }

    So. Und jetzt sage ich dir noch, dass auch der Firefox das blödsinnige „innerHTML“ implementiert hat (welches übrigens auch ohne dem all-Objekt benutzt werden kann). IMHO totaler Unfug. Die DOM-Methoden reichen doch völlig aus…

    P.S.: Dass der M$-IE7 das kann, und FF nicht, spricht wiederum ganz gegen die MS-Firefox-Theorie ;-)

    Der IE wird NIE die Qualität des Firefox erreichen. Insofern hast du Recht.

    mfg. Daniel

    1. Hello out there!

      So. Und jetzt sage ich dir noch, dass auch der Firefox das blödsinnige „innerHTML“ implementiert hat (welches übrigens auch ohne dem all-Objekt benutzt werden kann). IMHO totaler Unfug. Die DOM-Methoden reichen doch völlig aus…

      IIRC ist „innerHTML“ mitunter aber deutlich schneller.

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      1. Hallo,

        So. Und jetzt sage ich dir noch, dass auch der Firefox das blödsinnige „innerHTML“ implementiert hat (welches übrigens auch ohne dem all-Objekt benutzt werden kann). IMHO totaler Unfug. Die DOM-Methoden reichen doch völlig aus…

        IIRC ist „innerHTML“ mitunter aber deutlich schneller.

        Abgesehen von Konstrukten wie:

        for (var i = 0; i < 10; i++)  
         document.body.innerHTML += "<p>bla</p>";
        

        Scheint das durchaus der Fall zu sein. Naja, eben [native code]. Ich habe mir mal eine Funktion geschrieben, mit der ich die Knoten rekursiv mit childNodes[x] durchlaufe. Die Funktion brauchte ein vielfaches gegenüber getElementsbyTagName().

        Trotzdem werde ich mich nicht mit innerHTML abfinden ;-)

        mfg. Daniel

        1. IIRC ist „innerHTML“ mitunter aber deutlich schneller.

          Abgesehen von Konstrukten wie:

          for (var i = 0; i < 10; i++)

          document.body.innerHTML += "<p>bla</p>";

          
          >   
          > Scheint das durchaus der Fall zu sein.  
            
          Passend dazu <http://www.quirksmode.org/dom/innerhtml.html>  
          (ich bin auch lange Zeit davon ausgegangen innerHTML wäre langsamer)  
            
          Struppi.
          
          -- 
          [Javascript ist toll](http://javascript.jstruebig.de/) (Perl auch!)
          
  3. Hi,

    Ich habe einen Text, der nach einem Klick auf selbigen durch einen Iframe mit mehr Content ersetzt werden soll.
    Das funktioniert auch wunderbar problemlos im IE und im Opera.
    Nur der Firefox, dieser Erbsenzähler, kann es wieder mal nicht, weil der ja nur offizielle Standards unterstützt und auf Kompatibilität scheisst.

    Das könnte daran liegen, daß Du auf offizielle Standards scheißt und damit auch auf Kompatibilität.

    Hättest Du von Anfang an statt mit irgendwelchen IE-MS-Sonderlösungen mit standardisierten oder zumindest mit allen Browsern kompatiblen Lösungen gearbeitet, hättest Du das Problem nicht ...

    document.all ist eine Microsoft-Erfindung.
    Und Firefox mag Microsoft nicht.
    Und deshalb unterstützt Firefox keine Microsoft-Erfindungen...

    Daß Firefox mit document.all gar nicht umgehen kann, ist schlichtweg falsch.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo,

      Daß Firefox mit document.all gar nicht umgehen kann, ist schlichtweg falsch.

      Leider. Aber zum Glück nur im Quirksmode.

      mfg. Daniel

  4. Hi,

    Nur der Firefox, dieser Erbsenzähler, kann es wieder mal nicht,

    So etwas liegt üblicherweise am Scriptprogrammierer - also dir.

    weil der ja nur offizielle Standards unterstützt

    Leider führt auch (und gerade) Mozilla gerne proprietäre Erfindungen ein.

    und auf Kompatibilität scheisst.

    Mittlerweile ist (eine Teilmenge von) JS als ECMAScript standardisiert. Ansonsten: Netscape hat JS erfunden, nicht MS. Wenn also irgendwer auf Kompatibilität scheißt, dann ist es jeder, aber bestimmt nicht Mozilla.

    Und deshalb unterstützt Firefox keine Microsoft-Erfindungen...

    FF unterstützt mehrere Microsoft-Erfindungen,

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  5. Firefox ist sowieso der mieseste Browser, den es gibt.
    Er kann wieder HTML, noch CSS, noch sonst irgendwas.
    Und oh ja, ich vergaß, er ist ja so sicher :-D
    Seit er 20% Marktanteil hat, hat er allerdings plötzlich fast so viele Sicherheitslecks wie der IE...
    So ein Zufall aber auch.
    Ich bin auch kein Freund des M$-IE, aber der ist mal um Welten besser, als FF.
    FF scheisst auf Kompatibilität.
    Egal ob es ums einfärben von Scrollbalken geht oder um Javscripte, die er einfach nicht kann.
    Und kommt mir jetzt bloß nicht mit Barrierefreiheit.
    Barrierefreiheit ist ja toll, wenn man als Arbeitsloser oder während dem Urlaub oder hobbyweise die Zeit hat, an einer privaten Website mit 10 Unterseiten 3 Monate jeden Tag 10 Stunden rumzubasteln, dass es auch ja überall in jedem Kühlschrankbrowser läuft, vor allem aber im Firefox, weil der IMMER Probleme macht.
    Wenn es in jedem Browser läuft, läuft es nicht im Firefox.
    Ich bin Softwareentwickler und koste meine Kunden 180 Euro die Stunde, und die sind auch nicht gerade begeistert, wenn ich 3 Stunden an irgendnem kleinen Scheissproblemchen mit dem Firefox rumdoktere.
    HTML ist für mich ein Werkzeug, das ich manchmal brauche, wenn ich an meine Systeme Onlinesysteme anbinde.
    Das hat einfach zu funktionieren.
    Es ist ein Werkzeug, wie für den Automechaniker seine Hebebühne.
    Und der hat genausowenig Zeit und Lust sich stundenlang mit einer nicht oder nur teilweise funktionierenden Hebebühne auseianderzusetzen.
    Firefox ist nach Spam die zweitgrößte Seuche des Internets.

    Es gibt doch 0 Argumente mehr für den Firefox.
    Zumindest, seit es IE7 gibt.
    Der hat auch nicht mehr Sicherheitslöcher als der FF, und ist genauso einfach zu bedienen.
    Und dann kommt eben noch dazu, dass viele Seiten einfach nicht richtig angezeigt werden oder nicht/nur teilweise funktionieren.
    Ihr seid so auf diesem "Ich-bin-alternativ"-Trip.
    Das ist eine wirkliche Seuche, weil überall von jedem rumerzählt wird, Firefox sei so toll und so wichtig und so sicher und so.
    Obwohl im Endeffekt doch keiner eine wirkliche Ahnung hat warum und weshalb.
    Und die Nachteile werden mal eben schön unter den Teppich gekehrt.
    Also holt euch einen anständigen Browser, der alle Standards und inoffiziellen Standards unterstützt.
    Dann braucht ihr euch auch nicht mehr über nicht funktionierende Seiten beschweren...

    1. Es gibt doch 0 Argumente mehr für den Firefox.
      Zumindest, seit es IE7 gibt.

      Großartig, das es so mutige Leute wie dich noch gibt.

      Struppi.

      --
      Javascript ist toll (Perl auch!)
      1. Hi,

        Großartig, das es so mutige Leute wie dich noch gibt.

        Ja, bewundernswert!

        Hätte es nicht die tapfere 1. Welle der US-Boys am Omaha-Beach gegeben, vielleicht wären wir heute noch eine Diktatur ...

        SCNR >;->

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi,

          Ich merke schon, hier sind Spezialisten mit aussagekräftigen Argumenten am Werk.

          1. Hallo,

            Ich merke schon, hier sind Spezialisten mit aussagekräftigen Argumenten am Werk.

            Waren *deine* denn *wirklich* Ernst gemeint? Das schien mir alles irgendwie nix mit Firefox zu tun zu haben.

            Wegen IE7: Jo, ich finde die Seite IE7.com auch sehr schön ;-)

            mfg. Daniel

          2. Hi,
            Ich merke schon, hier sind Spezialisten mit aussagekräftigen Argumenten am Werk.

            Das warst du doch?

            Ich konnte in deinem Pamphlet kein aussagekräftiges Argument entdecken, das waren nur pauschale Aussagen, die du mit Sicherheit nicht belegen kannst, die im gegenteil, hier Tag für Tag mehrfach widerlegt werden, daher war dein Posting eine 1A Lachnummer.

            Struppi.

            --
            Javascript ist toll (Perl auch!)