Wie kann man Opera erkennen
Jens
- javascript
0 Avalon0 Cheatah0 Jürgen Berkemeier0 Cyx23
0 Jens
Hallo.
Weiss jemand, wie (und ob überhaupt) man mit Javascript ermitteln kann, dass der Benutzer Opera als Browser benutzt [natürlich ohne, dass dessen Benutzer in den Netzwerkeinstellungen des Opera einstellt "als Opera ausgeben"]?
Danke und viele Grüße
Jens
opera = navigator.userAgent.indexOf("opera");
if (opera == -1) alert("Alles klar!");
else alert("Scheiße");
Gruß
Avalon
Hi,
opera = navigator.userAgent.indexOf("opera");
Unfug. window.opera existiert.
Cheatah
Hallo,
allerdings unterscheidet window.opera nicht zwischen alten und neuen Versionen. Opera macht unter Javascript auch nur dann Probleme, wenn man unter Verion 6 oder älter mit DOM-Methoden Inhalte ändern möchte. Ich habe daher
if (document.getElementsByTagName('body')[0].replaceChild)
anstelle des oft gewählten
if (document.getElementById)
als DOM-Test genommen.
Gruß, Jürgen
Hallo Jürgen,
Opera macht unter Javascript auch nur dann Probleme, wenn man unter Verion 6 oder älter mit DOM-Methoden Inhalte ändern möchte.
nö.
Wenn es bei dir bislang so geklappt hat, schön für dich, zumal m.E. Opera 7.5 der Preview zufolge etwas besser geworden ist.
Grüsse
Cyx23
Hallo,
Opera macht unter Javascript auch nur dann Probleme, wenn man unter Verion 6 oder älter mit DOM-Methoden Inhalte ändern möchte.
nö.
warum nö? Ich ändere mittels xxx.nodeValue oder xxx.innerHTML den Inhalt von Knoten. Die alten Operas unterstützten das nicht, die ab 7 schon. Mit der Abfrage im Posting wurden die 6er und älter abgeblockt, die 7er kamen durch.
Gruß, Jürgen
Hallo,
Opera macht unter Javascript auch nur dann Probleme, wenn man [...]
nö.
warum nö?
weil vereinfacht ausgedrückt m.E. bislang alle Operaversionen mit JavaScript recht eigen, um nicht zu sagen buggy, waren.
Löblich aber die Fortschritte bei 7.5pr.
Ich ändere mittels xxx.nodeValue oder xxx.innerHTML den Inhalt von Knoten. Die alten Operas unterstützten das nicht, die ab 7 schon.
Und wie stehts damit:
<noscript>test</noscript>
<script>
alert(document.getElementsByTagName("noscript")[0].innerHTML)
</script>
Grüsse
Cyx23
Hallo,
naja, stimmt wohl, das kann er nicht, aber wie oft prüft man unter JS wie der <noscript> aussieht?
Gruß, Jürgen
window.opera existiert.
Was es nicht alles gibt...
Danke!!!
Hallo,
window.opera existiert.
zumindest bei Opera ab Version 5, wird dazu im Gegensatz zu window.netscape bislang auch nicht von anderen Browsern angeboten, und passt direkt zu der geforderten Unterscheidung.
Was es nicht alles gibt...
Hier zum Thema Browsererkennung durch JavaScript http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html noch ein Beispiel für weitergehende Unterscheidungen, fast immer anhand von Browserfähigkeiten und nicht dem user-agent.
Ideal ist es natürlich wenn die angefragte Fähigkeit auch mit der jeweiligen Aufgabe zu tun hat, so ist wohl auch der Ansatz von Jürgen mit if (document.getElementsByTagName('body')[0].replaceChild) gedacht, der allerdings einen <body> abfragt, und daher als Weiche für moderne Browser nur nach dem body-tag oder nach onload geeignet wäre.
Grüsse
Cyx23
Hallo,
Hier zum Thema Browsererkennung durch JavaScript http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html noch ein Beispiel für weitergehende Unterscheidungen, fast immer anhand von Browserfähigkeiten und nicht dem user-agent.
Sehr schöne Übersicht.
Allerdings wird Opera 7.23 als Opera 7.5 identifiziert... getComputedStyle muss irgendwo zwischen 7.11 und 7.23 implementiert worden sein. Opera 7.21 (auf schwedisch...) ist der einzige, den ich dazwischen noch bekommen konnte, und der kann es, wird also auch als 7.5 eingestuft.
Mathias
Opera 7.5p2 kann übrigens neuerdings die Methode window.navigate, siehe http://people.opera.com/tim/changelogs/w750p2.html, vielleicht eignet sich das für eine Unterscheidung.