molily: Browserspezifische Meldung

Beitrag lesen

Hallo,

var what = navigator.appName

var a = "Internet"

if(a in what)

der in-Operator prüft, ob eine Eigenschaft bei einem Objekt existiert.

Beispiel: »"eigenschaft" in objekt« ergibt true oder false, je nachdem, ob objekt.eigenschaft existiert.

Du machst hier gleichsam »"Internet" in navigator.appName« - das ergibt false, weil appName keine Eigenschaft namens »Internet« besitzt.

Was du hier tun willst, ist abfragen, ob in einem String ein anderer String enthalten ist. Dazu hilft dir »in« nicht weiter, sondern indexOf().

Aber auch damit macht eine solche Browserabfrage wenig Sinn. Ob in navigator.appName vorkommt, ist keine zuverlässige Browsererkennung für den Internet Explorer. Jetzt könntest du natürlich auf die Suche nach zuverlässigeren Browsererkennungen gehen. Zum Beispiel eignen sich Conditional Comments besser, um gewissen Code nur für den IE einzubinden.

Aber du solltest das Pferd nicht von hinten aufzäumen. In erster Linie solltest du versuchen, deine Website für möglichst kompatibel zu allen Browser zu schreiben. Das heißt wiederum nicht, dass du älteren, weniger fähigen Browsern haargenau dasselbe bieten musst. Du kannst sie aber nach ihren Möglichkeiten bedienen. Wenn du auf Probleme bei der Anpassung der Site an den IE stößt, so hilft man dir hier sicher gerne weiter.

Den Benutzer solltest du jedenfalls nicht mit pauschalen Meldungen wie »Dieser Browser nicht fähig, alle Inhalte auf dieser Seite korrekt anzuzeigen« belästigen, der will bloß eine funktionierende Site und sich nicht ärgern. Wenn deine Site tatsächlich auf Features angewiesen ist, die unmöglich im IE umsetzbar sind - ich nehme an, dass das nicht der Fall ist -, dann solltest du den Benutzer darüber klar informieren. Dann kann er entweder deine eingeschränkte Site in Kauf nehmen oder den Browser wechseln - was du jedoch als äußerst unwahrscheinlich annehmen kannst, sofern es dem Benutzer nicht besonders wichtige Inhalte sind.

Mathias