-4

私はJavascriptブラウザ検出機能を作成しましたが、他の人の知識でそれを改善したいと思います。

問題:

「Chrome18」は「Maxthon3」である必要があると思いますが、もちろんそうではありません。

Chrome18とMaxthon3をどのように区別できますか?

同様に、FirefoxとSeaMonkeyをどのように区別できますか?

そして、月はどうですか?navigator.userAgentを介してそのブラウザを検出することもできますか?

他に忘れてしまった人気のブラウザはありますか?

純粋なJavascriptソリューション/提案のみをお願いします!

 <!DOCTYPE html>

 <script type="text/javascript">

 function GetBrowser(){
 var browser="";
 var version=0;

 if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
  version=new Number(RegExp.$1);
  browser="FireFox";} else {

  if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
   version=new Number(RegExp.$1);
   browser="Internet Explorer";} else {

   if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
    version=new Number(RegExp.$1);
    browser="Opera";} else {

    if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
     version=new Number(RegExp.$1);
     if (version==18) {version=3; browser="Maxthon";} else {browser="Google Chrome"}} else {version=0; browser="Undetermined";}
 }}}
 return browser+' '+version;}

 document.write(GetBrowser());
 </script>
4

2 に答える 2

2

優れたブラウザー/機能検出が Modernizr http://modernizr.com/に実装されており、CDNjs http://cdnjs.com/などの一部の CDN でもサポートされています。

私が理解したいのは、ブラウザーがサポートする機能を検出できるため、わずかな違いでブラウザーを簡単に検出できるということです。

于 2012-11-09T21:41:45.073 に答える
-5

これは私が作り上げたものです。OperaとSafariのバージョン検出のバグを修正し、SeaMonkeyを追加しました。

 <!DOCTYPE html>

 <script type="text/javascript">

 function GetBrowser(){
 var browser="";
 var version=0;

 if (/SeaMonkey[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
  version=new Number(RegExp.$1);
  browser="SeaMonkey";} else {

  if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
   version=new Number(RegExp.$1);
   browser="Mozilla FireFox";} else {

   if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
    version=new Number(RegExp.$1);
    browser="Internet Explorer";} else {

    if (/Opera/.test(navigator.userAgent)){
     if (/Version[\/\s](\d+\.\d+)/.test(navigator.userAgent)){version=new Number(RegExp.$1);}
     browser="Opera";} else {

     if (/Maxthon[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
      version=new Number(RegExp.$1);
      browser="Maxthon";} else {

      if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
       version=new Number(RegExp.$1);
       browser="Google Chrome";} else {

       if (/Safari/.test(navigator.userAgent)){
        if (/Version[\/\s](\d+\.\d+)/.test(navigator.userAgent)){version=new Number(RegExp.$1);}
        browser="Safari";} else {browser="Unknown";}

 }}}}}}
 return browser+' '+version;}


 document.write(GetBrowser());

 </script>
于 2012-11-09T23:31:07.873 に答える