IE: auf abbr-Elemente zugreifen.
David Aurelio
- javascript
0 Ashura0 David Aurelio2 Ashura
0 Eternius0 David Aurelio
Hallo Forum, (btw., wollt ihr hier das nicht mal auf ein _vernünftiges_ board umstellen? Kleiner Scherz am Rande, scnr)
Ist es in irgendeiner Form möglich im Internet Explorer per Javascript auf abbr-Elemente zuzugreifen? Meine diesbezüglichen Versuche sind leider gescheitert:
abbrs = document.all.tags('abbr'); // abbrs.length = 0
abbrs = document.getElementsByTagName('abbr'); // abbrs.length = 0
Leider scheint ja auch der IE7 das abbr-Element nicht zu unterstützen.
schönen Gruß, David.
Hallo David.
Ist es in irgendeiner Form möglich im Internet Explorer per Javascript auf abbr-Elemente zuzugreifen? Meine diesbezüglichen Versuche sind leider gescheitert:
Bist du sicher? Der IE gibt mir hier wie erwartet 1 aus:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title><abbr/> und IE</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
[code lang=javascript]window.onload = function() {
alert(document.getElementsByTagName("abbr").length);
}
</script>
</head>
<body>
<p>Dies ist eine <abbr title="Abkürzung">Abk.</abbr></p>
</body>
</html>[/code]
Einen schönen Samstag noch.
Gruß, Ashura
Bist du sicher? Der IE gibt mir hier wie erwartet 1 aus:
Nein, ich hatte nur einen online-IE7-Screenschießer bemüht, bei dem das Element nicht, wie im CSS angegeben, unterstrichen war.
Ich entwickle unter Linux, als Zweitsystem habe ich noch Windows 2000, daher gibt es (zumindest zur Zeit) keinen IE7 für mich. Schön, dass das Element unterstützt wird.
Trotzdem: ich möchte im Internet Explorer < 7 per Javascript/DOM auf abbr-Elemente zugreifen.
Hintergrund: Ich entwickle gerade ein Framework, für das auch schon umfangreiche Inhalte eingegeben werden, die wahrscheinlich nicht so bald veralten.
Diese Inhalte werden in einer Datenbank abgelegt. Damit die "zukunftssicher" sind, möchte ich im Hinblick auf XHTML 2.0 (auch, wenn das noch ewig dauert, btw: wie lang eigentlich?) auf das abbr-Element für Abkürzungen setzen, diese aber für IE-User per Javascript durch acronym-Elemente ersetzen.
Habe per Google einen Ansatz gefunden, den werde ich später mal testen, jetzt erst mal ins Kino ;)
Danke erstmal,
David
Hallo David.
Nein, ich hatte nur einen online-IE7-Screenschießer bemüht, bei dem das Element nicht, wie im CSS angegeben, unterstrichen war.
Der IE kennt das abbr-Element ja auch nicht, wie du bereits richtig erkannt hast. Du könntest auch ein <husseldiguggeldu>Test</husseldiguggeldu> in dein Dokument einfügen. Auch hier würde dir document.getElementsByTagName("husseldiguggeldu").length „1“ ausgeben. Die DOM-Methoden sind nicht an HTML gebunden und daher gut geeignet für andere Dialekte sowie XML und seine Derivate.
Ich entwickle unter Linux, als Zweitsystem habe ich noch Windows 2000, daher gibt es (zumindest zur Zeit) keinen IE7 für mich.
Du kennst QEMU?
Schön, dass das Element unterstützt wird.
Wie man’s nimmt …
XHTML 2.0 (auch, wenn das noch ewig dauert, btw: wie lang eigentlich?)
Rechne bis zur Alltagstauglichkeit am Besten mit 5 bis 10 Jahren.
auf das abbr-Element für Abkürzungen setzen, diese aber für IE-User per Javascript durch acronym-Elemente ersetzen.
Und dies nur, um die Abkürzungen formatierbar und für die Anzeige des title-Attributes empfänglich zu machen?
Warum schreibst du Abkürzungen nicht aus und erklärst sie je nach Erfordernis beim erstmaligen Auftreten im Dokument?
Habe per Google einen Ansatz gefunden, den werde ich später mal testen,
Ja, replaceChild sollte dir hier gute Dienste leisten können.
jetzt erst mal ins Kino ;)
Was gab es denn zu sehen?
Einen schönen Sonntag noch.
Gruß, Ashura
Hallo,
Ja, replaceChild sollte dir hier gute Dienste leisten können.
Ich frage mich grad ob ein regex auf innerhtml von body nicht wesentlich schneller sein könnte. Hab aber keine Erfahrungen damit: http://www.sovavsiti.cz/css/abbr.html
Grüße
Jeena Paradies
Hallo Jeena.
Ja, replaceChild sollte dir hier gute Dienste leisten können.
Ich frage mich grad ob ein regex auf innerhtml von body nicht wesentlich schneller sein könnte.
Ohne es getestet zu haben, würde ich sagen, dass dem nicht so ist. Ein schneller Austausch eines Knotens sollte eigentlich schneller sein, als den Inhalt des gesamten body-Elementes einzulesen und per regulärem Ausdruck zu bearbeiten.
Hab aber keine Erfahrungen damit: http://www.sovavsiti.cz/css/abbr.html
Das dort beschriebene Vorgehen stützt sich auf eine Aussage, die hier widerlegt wurde:
Notice, that we have to use regular expressions and the proprietary innerHTML instead of standard DOM methods, because IE can't access the <abbr> element via DOM.
Somit ist dieses Script unnötig. (Selbst im IE 5.0 werden alle abbr-Elemente erkannt.)
Einen schönen Sonntag noch.
Gruß, Ashura
Hallo Jeena,
Ich frage mich grad ob ein regex auf innerhtml von body nicht wesentlich schneller sein könnte.
Ich hatte es mit der replace
-Methode versucht, was auch wunderbar funktioniert.
Ich hatte einfach den inneren Drang, eine DOM-basierte Lösung zu finden, nur so für mich ;-)
schönen Gruß,
David
Hallo Ashura,
Du kennst QEMU?
Jetzt schon. Danke für den Link. Ich hatte es vor geraumer Zeit schon einmal ausprobiert, allerdings ohne kqemu; damit war es faktisch unbenutzbar.
Habe es jetzt mal mit kqemu kompiliert, das scheint besser zu laufen.
[...]
Und dies nur, um die Abkürzungen formatierbar und für die Anzeige des title-Attributes empfänglich zu machen?
Warum schreibst du Abkürzungen nicht aus und erklärst sie je nach Erfordernis beim erstmaligen Auftreten im Dokument?
Ja, das steht auch als Alternative auf einfach-fuer-alle.de. Ich bin nicht ganz sicher, was die beste Lösung ist. Im Endeffekt kann ich auch nur "Content Quality Guidelines" aufstellen, da der Content von einer Gruppe von Leuten eingepflegt wird. Der Dump ist mittlerweile 10Mb groß, daher wäre es auch aufwendig, alle acronym-Elemente zu tilgen/ersetzen, falls der Output irgendwann mal XHTML 2 sein soll.
Ich will die Inhalte auh direkt (X)HTNL-formatiert in der DB ablegen, um nicht zur Ausgabe noch bb-Code oder irgendwas parsen muss.
Was gab es denn zu sehen?
Ice Age 2. Ein bisschen wenig Story, ein kitschiges Ende, aber gute Slapstick-Qualität.
Einen schönen Sonntag noch.
Danke, den wünsche ich Dir auch,
Gruß, David.
Hallo,
kann ich nicht bestätigen. Funktioniert wie es soll.
gruss
Ein schön einfacher Ansatz ist übrigens dieser hier:
http://www.jasonkarldavis.com/scripts/abbrhack/
Die Seite lässt sich mit dem IE übrigens nicht öffnen (Content-Type: text/xml+xhtml)