2010-03-22 12 views
10

Ich versuche diese Zeile zu verwenden, um den Browsertyp IE oder Firefox zu erkennen.JavaScript wird verwendet, um den Browsertyp zu erkennen

alert(isBrowser("Microsoft")); 

aber ich bekomme absolut nichts, der Alarm taucht nicht einmal auf. Ich bin mir nicht sicher, was ich falsch mache.

Was wäre der beste Weg, um den Browsertyp zu erkennen?

Antwort

8

starten:

alert(navigator.appName); 
+0

Ich mag die Einfachheit dieser Antwort. Hat jemand Einwände dagegen, denn obwohl die anderen Antworten umfassender sind (Deckungsversionsnummer, etc.), brauche ich nur den Browsertyp. Aber irgendwelche bekannten Probleme hier. Übrigens habe ich es auf FF probiert und es hieß Netscape! – Duber

+3

Ich habe es auf Chrome versucht und es sagt auch Netscape: s –

+2

Chrome, Firefox und Safari geben den Namen "Netscape" zurück. –

4

Ich denke, jQuery hat es richtig, wenn sie testing for features anstelle von nur Browser unterstützen.

+1

Ich stimme der Theorie - und meistens funktioniert es auch in der Praxis. Aber gelegentlich müssen Sie den Browser kennen. Zum Beispiel, wie erkennen Sie Rechtsklick in Webkit (Safari oder Chrom) sogar prototype.js muss Browser-Erkennung hier – plodder

1

Ein sehr guter Artikel über das kommt von Quirksmode: http://www.quirksmode.org/js/support.html

Das Skript von ‚lajuette‘ geliefert ist gut, aber es macht nicht viel schlauer machen. Der gleiche Autor sein Denken hinter dem Skript in den obigen Link erklären und im Grunde, was er sagt, ist:

  • Es ist nicht über Browser-Erkennung
  • Es handelt sich um Objekterkennung
  • Diese führt zu dem Wissen, welcher Browser verwendet wird.
+0

Diese Antwort wird Ihnen helfen, unabhängig von einem Javascript-Framework, das ich glaube, ist der beste Ausgangspunkt. – JeroenEijkhof

-1
function whereUWantToDetectBrowser(){ 
     if (navigator.appName == "Microsoft Internet Explorer") 
     intExp(); 
     else 
     other(); 

} 
function intExp(){ 
     //do what you want to do for specifically Internet Explorer 
} 
function other(){ 
     //do what you want to do for other browsers 
} 

dieser Code löst das Problem. Anstatt Funktionen von whereUWantToDetectBrowser() aufzurufen, wenn Sie Ihren spezifischen Code dort schreiben, verursacht dies einen Fehler. Und Code wird nicht ausgeführt. Weil ein Browser den Code erkennt, den er ausführen muss (spezifisch für jeden Browser). Wenn Sie den Code unterscheiden, bedeutet dies, dass der Code in einigen Browsern nicht funktioniert. Sie möchten ihn daher speziell für diese Browser schreiben. So, other() wird keinen Effekt in IE haben, da intExp() keinen Effekt in anderen Browsern hat.

3

Für MSIE Erkennung können Sie JavaScript verwenden:

// This function returns Internet Explorer's major version number, 
    // or 0 for others. It works by finding the "MSIE " string and 
    // extracting the version number following the space, up to the decimal 
    // point, ignoring the minor version number 
    <SCRIPT LANGUAGE="JavaSCRIPT"> 
    function msieversion() 
    { 
     var ua = window.navigator.userAgent 
     var msie = ua.indexOf ("MSIE ") 

     if (msie > 0)  // If Internet Explorer, return version number 
     return parseInt (ua.substring (msie+5, ua.indexOf (".", msie))) 
     else     // If another browser, return 0 
     return 0 

    } 
    </SCRIPT> 

Unten ist ein Beispiel dafür, wie es in Ihrem HTML überall nennen:

<SCRIPT LANGUAGE="javascript"> 
    if (msieversion() >= 0) 

     document.write ("This is Internet Explorer"); 

    else 

     document.write ("This is another browser"); 

    </SCRIPT> 

http://support.microsoft.com/kb/167820 http://support.microsoft.com/kb/167820

+0

Es ist besser, wenn Sie hier eine echte Antwort mit Code geben würden und den Link als Backup zur Verfügung stellen, von dem Sie diese Informationen erhalten haben. – Anthon

+2

Ich habe meine Antwort korrigiert. –

+1

"msieversion()> = 0" sollte "msieversion> 0" lesen. Andernfalls werden alle Browser "Dies ist Internet Explorer" zurückgeben. – flyingace

-2

Die beste und Der kürzeste Weg, um den Browsertyp für IE zu finden, ist ..U kann dasselbe für andere Browsertypen tun

if (navigator.appName == "Microsoft Internet Explorer"){ 

// Ur piece of validation 

} 
+0

es funktioniert nur für IE 10 und früheren Versionen. Überprüfen Sie es [hier.] (Http://www.w3schools.com/jsref/prop_nav_appname.asp) –

Verwandte Themen