Cheatah: document.all für Mozilla

Hi,

vor einiger Zeit sah ich mal ein Script (Bookmarklet), welches mittels DOM-Methoden dem Mozilla ein document.all erzeugt. Wenn ich die Backen kräftig zusammenkneife kriege ich das zwar sicher auch selbst hin; aber dieses Script war AFAIK recht gut optimiert, weswegen ich es gerne verwenden würde. Da Google mir zu meinen Suchbegriffen irgendwie immer was anderes ausspuckt ;-) frage ich nun:

Kennt zufällig jemand dieses Bookmarklet?

Cheatah

--
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
  1. Hallo,

    Kennt zufällig jemand dieses Bookmarklet?

    Das kenne ich zwar nicht, aber vom Prinzip her sollte etwas in dieser Art helfen:

    if(!document.all && document.getElementsByTagName)
    {
      document.all=document.getElementsByTagName("*");
    }

    Hinweis: Der IE beginnt beim DOCTYPE zu zaehlen, Mozilla zaehlt ab html.

    Testdokument:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Test by TM 12/03</title>
    <script language="JavaScript" type="text/javascript">
    <!--

    function Test()
    {
      if(!document.all && document.getElementsByTagName)
      {
        document.all=document.getElementsByTagName("*");
      }

    for(i=0;i<document.all.length;i++)
      {
        alert(i+": "+document.all[i].tagName);
      }

    alert("Textknoten vom p-Element mit id="abc":\n"+document.all["abc"].firstChild.nodeValue);
    }
    //-->
    </script>
    </head>
    <body onload="Test()">
    <p id="abc">bla</p>
    </body>
    </html>

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
    1. Hi,

      Das kenne ich zwar nicht, aber vom Prinzip her sollte etwas in dieser Art helfen:

      naja, das Prinzip ist noch ein wenig umfangreicher, mit prototype und allem drum und dran ... deswegen schrieb ich ja, das ich besonders an dem speziellen Script interessiert bin, das das alles schon gelöst hat :-)

      Trotzdem danke.

      Cheatah

      --
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. gruss Cheatah,

        http://www.google.de/search?as_q=javascript+emulate+document.all+mozilla&num=10&hl=de&ie=UTF-8&oe=UTF-8&btnG=Google+Suche&as_epq=&as_oq=&as_eq=&lr=lang_en&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=

        verweist unter anderem auf
           http://webfx.eae.net/dhtml/ieemu/
           sowie auf
           http://webfx.eae.net/dhtml/ieemu/htmlmodel.html

        ich bin mir sehr sicher, das Du genau dies suchst;

        vor ein paar monaten habe ich mir dort die "document.all"-
           emulation angesehen;

        im moment sind die seiten aber leider nicht zu erreichen;

        tschoe - peterS. - pseliger@gmx.net

        --
        sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
        1. hallo again,

          entschuldigt den schnellschuss, naechstes mal les' ich
             alle postings dreimal;

          @Cheatah

          suchst du nun eine emulation des "document.all"-DOM
             oder ein mozilla-pendant zur "document.all"-collection
             so wie es Thomas Meinike in seiner antwort nahelegt ?

          ... verwirrt ... peterS.

          --
          sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
          1. Hi,

            suchst du nun eine emulation des "document.all"-DOM
               oder ein mozilla-pendant zur "document.all"-collection
               so wie es Thomas Meinike in seiner antwort nahelegt ?

            eher ersteres. Das Bookmarklet, auf ein HTML-Dokument ausgeführt, hat ein document.all erzeugt, welches genau das beinhaltete, was auch der IE haben würde, mit allen Methoden usw.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
        2. Hi,

          [google:javascript emulate document.all mozilla]

          "emulate" war genau der Begriff, an den ich nicht gedacht hatte. Vielen Dank!

          http://webfx.eae.net/dhtml/ieemu/htmlmodel.html
             ich bin mir sehr sicher, das Du genau dies suchst;

          Ich glaube Dir das erst mal, bis der Server es mich prüfen lässt :-) Wenn nicht, melde ich mich noch mal. Merci!

          Cheatah

          --
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    andere haben ja schon den passenden Link gepostet, darum hier nur meine Meinung dazu :-)

    Leider hilft das Skript (als Bookmarklet) wenig, um IE "optimierte" Seiten auch im Mozilla betrachten zu können. Bei einigen wenigen Seiten klappt es, aber bei den meisten "document.all" Seiten schlägt es aus folgenden Gründen fehl:

    1.) Der häufigste Grund: document.all wird bereits direkt nach dem Laden der Seite zum Initialisieren benutzt. Das schlägt fehl, da das emulierte document.all zu diesem Zeitpunkt noch nicht zur Verfügung steht, sondern erst nach dem Laden des Bookmarklets. Später klappt das dann aber wegen der fehlenden Initialisierung nicht.

    2.) (Radio)Active-X - klappt natürlich nicht im Mozilla
    3.) die Emulation ist nicht ganz vollständig.

    Ob es wohl für das 1. Problem eine Lösung gibt? Könnte Mozilla das Skript für bestimmte Seiten automatisch ausführen, bevor das Javascript der Seite gestartet wird?
    Das würde Mozilla wohl zur Hälfte (oder mehr) der Problemseiten kompatibel machen...
    An 3. könnte man was machen, aber ohne 1. hat das keinen Sinn.

    Dominik