document.all für Mozilla
Cheatah
- javascript
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
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
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
gruss Cheatah,
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
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.
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
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
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