hallo,
if(document.layers) {
document.getElementById = function(id) {
return document.layers[id];
}
}
Interessanter Vorschlag - und er _könnte_ durchaus funktionieren. Allerdings ist es nicht zweckmäßig, hier
return document.layers[id];
zu verwenden, weil das ein "besetzter Ausdruck" ist. Ersetze das durch eine Variable, dann _könnte_ es klappen (ich hab aber jetzt keine Lust, das selber durchzuspielen und auf Machbarkeit zu prüfen).
da Layer in Netscape 4 geschachtelt sind, habe ich es auch noch rekursiv gelöst, so das <div>s wirklich auch gefunden werden.
Hm. Bist du sicher? Netscape 4 kann bereits DIV's und braucht dafür keine Sonderkonstruktionen.
Aber es können eben nur <div>s mittels document.layers gefunden werden.
<a> können durch document.links/anchors nur durch das name-Attribut angesprochen werden.
Nun die Frage, ob es nicht doch irgendwie geht andere Elemente durch das id-Attribut anzusprechen
Möglicherweise. Aber ich bitte um Nachsicht: außer der These, dann mit Variablen (und eventuell RegExpressions) zu arbeiten, fällt mir auch nichts weiter ein, und da ich selbst nicht vor dem Zwang stehe, eine solche Konstruktion einsetzen zu müssen, bin ich gezwungen, dich an dieser Stelle alleine zu lassen.
ab Netscape 6 geht das! Gibts in Netscape 4 auch noch Elemente die man IRGENDWIE durch das ID-Attribut ansprechen kann?
IRGENDWIE können nahezu alle HTML-tags id-Attribute bekommen. Das hat nichts mit dem Browser zu tun, sondern mit HTML und der per DOCTYPE angezogenen DTD.
Das "IRGENDWIE" würde ich dann speziell für Netscape 4 durch selbstdefinierte document.getElementById ersetzen.
Dann schreibe dir deine eigene DTD dafür.
Grüße aus Berlin
Christoph S.