Hallo hans,
komme erst jetzt wieder dazu, die Arbeit am obigen Problem aufzunehmen. Ich habe die Antworten (vielen Dank) durchgelesen und bin fast ein bisschen stolz, als bescheidener Webseitenersteller eine solche Experten-Diskussion losgelöst zu haben ;-)
Das ist es, was ich an u.a. an diesem Forum so mag: Teamwork.
Das test-script http://www.visuelya.de/selfpics/test.html erkennt Mac-IE 5.2 tatsächlich. Nur - wie kann ich das Code-Schnipsel jetzt für meine Zwecke gebrauchen (ich kenn mich in js nicht - na ja, fast nicht - aus)?
Ich fasse mal zusammen: Der Javascript-Workaround war mit sog. "Conditional Comments" geklammert, damit alle Browser außer IE ihn einfach ignorieren. Wie wir festgestellt haben, kapiert der Mac IE aber diese Conditional Comments nicht. Da es sich sowieso um eine Javascript-Lösung handelt, können wir also auch eine Javascript-Browsererkennung nehmen, die aber Mac-IE und PC-IE gemeinsam zuverlässig erkennt. Die bisherige Zwischenlösung (ich bin sicher, Ingo frickelt noch ,-)) benutzt
if(!window.navigator.language)
zur Erkennung, und es klappt auf IE Mac und, wenn ich das richtig verstanden habe, auch unter IE PC.
Eine Lösung könnte also so aussehen, daß Du — statt das gesamte Javascript in Conditional Comments zu setzen — beim Funktionsaufruf dieses Objekt abfragst. Nachfolgend mal der veränderte Scriptblock:
// hier habe ich <!--[if IE]> entfernt
<script type="text/javascript">
function hoverIE() {
var LI = document.getElementById("Navigation").firstChild;
do {
if(LI.firstChild) { // A (SPAN)
if(LI.firstChild.nextSibling) { // #text
if(LI.firstChild.nextSibling.nextSibling) { // UL ?
LI.onmouseover=einblenden; LI.onmouseout=ausblenden;
}
}
}
LI = LI.nextSibling;
}
while(LI);
}
function einblenden() {
this.firstChild.nextSibling.nextSibling.style.display = "block";
this.firstChild.nextSibling.nextSibling.style.backgroundColor = "silver";
}
function ausblenden() {
this.firstChild.nextSibling.nextSibling.style.display = "none";
}
// hier habe ich die Abfrage reingesetzt:
if(!window.navigator.language) {
window.onload=hoverIE;
}
</script> // und hier flog <![endif]--> raus
Es ist noch nicht 100% sicher, ob alle anderen Browser mit der Abfrage wirklich von dem Javascript ausgeschlossen werden; in den meisten Fällen dürfte es aber egal sein, denke ich, da dann eben die Navigation über JS gesteuert wird und nicht von CSS, und wenn JS ausgeschaltet ist, in modernen Browsern CSS zum Tragen kommt. Probleme könnte es imho allerdings dann geben, wenn das Javascript und die CSS-Anweisungen sich in die Quere kommen... Es gilt also, diese Browsererkennungs-Abfrage auf Zuverlässigkeit zu prüfen und ggf. zu ergänzen.
Berichte mal, ob Du es hinbekommen hast :-)
Gruß aus Köln-Ehrenfeld,
Elya
„Mac OS X wird weiterhin nur auf Macs aus dem Hause Apple laufen, egal, ob da nun ein PowerPC, ein Pentium oder Chocolate Chips drinstecken.“ (Tim Tepaße)