-2

これを行うのに役立つ HTML コードをオンラインで見つけましたが、Firefox または Internet Explorer で試しても機能しません。これを達成するために助けてもらえますか?

これが私が見つけたコードです

    <script language="JavaScript" type="text/JavaScript">
    if(navigator.appName == "Mozilla")
    {
     window.location = "ff/index.html"
    }
     if(navigator.appName == "Microsoft Internet Explorer")
    {
     window.location = "ie/index.html"
    }
     if(navigator.appName == "Google Chrome")
    {
     window.location = "ch/index.html"
    }
     if(navigator.appName == "Safari")
    {
     window.location = "sa/index.html"
    }
     if(navigator.appName == "Google Chrome")
    {
     window.location = "ch/index.html"
    }
     window.location == "un/index.html"
    </script>
4

4 に答える 4

0

Trying to determine the browser in JavaScript is always tricky and never reliable. In your case it is not working because navigator.appName in Firefox (at least version 12.0) returns... "Netscape".

A little bit more reliable is the usage of navigator.userAgent which returns: ""Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0"" on my computer.

Even better, check out $.browser - which is deprecated for a reason, see above.

Which brings us to the question: why do you need this? Modern web applications should discover browser capabilities rather than relying on the actual browser.

PS: the code you pasted is really verbose, what about this equivalent snippet?

var redirects = {
    "Mozilla": "ff",
    "Microsoft Internet Explorer": "ie",
    "Google Chrome": "ch",
    "Safari": "sa",
    "Google Chrome": "ch"
};

window.location = (redirects[navigator.appName] || "un") + "/index.html";
于 2012-06-03T11:02:09.160 に答える
0

My favorite script is this one - http://www.quirksmode.org/js/detect.html Also most of the modern libraries have browser detection built in (e.g. jQuery browser object)

However it is highly recommended to use feature detection instead of browser detection. Take a look at the Modernizr library as a good example of what I'm talking about.

于 2012-06-03T11:02:38.187 に答える
0

このコードを試してください-

<script language="JavaScript" type="text/JavaScript">
    if(navigator.appCodeName == "Mozilla")
    {
     window.location.href = "ff/index.html"
    }
     if(navigator.appCodeName == "Microsoft Internet Explorer")
    {
     window.location.href = "ie/index.html"
    }
     if(navigator.appCodeName == "Google Chrome")
    {
     window.location.href = "ch/index.html"
    }
     if(navigator.appCodeName == "Safari")
    {
     window.location.href = "sa/index.html"
    }
     if(navigator.appCodeName == "Google Chrome")
    {
     window.location.href = "ch/index.html"
    }
     window.location.href = "un/index.html"
    </script>
于 2012-06-03T11:46:31.817 に答える
0

上記のスクリプトはどれも、「Firefox 37.x」へのリダイレクト (!!) などの基本的なものを含め、十分なケースでは機能しないため、最悪の場合は「Google Chrome」(非常に頑固) です。 *私がWORKINGを見つけたアプローチ:

http://www.javascripter.net/faq/browsern.htm

以下: 変更した (クイック/ダーティ/クリーンアップを歓迎します) 「バージョン」。ここで必要なのは、ブラウザーのコード名などを表示する代わりにリダイレクトであるためです。

  • 注: 著者の KWOWS は、その全体的な方法の欠陥について警告しています。

これを読んだ人なら誰でも、オブジェクト検出/ブラウザー機能の検出が現在 (2015 年 9 月) はるかに優れた方法として宣伝されていることを理解していると思います — ただし、これ:

まず、100% 信頼できるわけではありません。そして何よりも、ほとんどすべてを再コーディングしたり、CSS に切り替えたりするのではなく、既存の Web サイトを (できるだけわずかに) 変更する必要がある場合は特に、より単純なアプローチまたはより迅速なアプローチが必要になる場合があります。年齢!

以下を使用してテスト済み: http://www.w3schools.com/html/tryit.asp?filename=tryhtml_default

( http://stackoverflow.comのテスト リダイレクト URL は、その W3schools ページでは動作していないようですが、Google のページでもありませんが、個人の Web サイトの URL は動作していました)

 .  

<!DOCTYPE html><html><head>
<script language="JavaScript" type="text/JavaScript">

var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera 15+, the true version is after "OPR/" 
if ((verOffset=nAgt.indexOf("OPR/"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+4);
}
// In older Opera, the true version is after "Opera" or after "Version"
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5)
window.location.href = "http://stackoverflow.com"
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7)
window.location.href = "http://www.w3schools.com"
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8)
window.location.href = "http://stackoverflow.com"
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
          (verOffset=nAgt.lastIndexOf('/')) ) 
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion); 
 majorVersion = parseInt(navigator.appVersion,10);
}

</script></head><body>
于 2015-09-06T02:33:16.797 に答える