我主要看了這裏http://topic.csdn.net/u/20100907/16/D01D667A-41AA-4A61-B985-8EB612E061AC.html
單位有個需求,要根據訪問網站的(手機或電腦)設備的不同,顯示不同的網頁。
在網上找了一下,我的總結是最好用HTML DOM 的userAgent 屬性來判斷訪問網站的設備是什麼。
1.HTML頁代碼:
<divid="userAgent">
</div>
<scripttype="text/javascript">
document.getElementById("userAgent").innerHTML = navigator.userAgent;
//MessageBox.Show(this.webBrowser1.Document.GetElementById("userAgent").InnerHtml);
</script>
這樣,就可以得到userAgent 的返回值了。
下面是4個程序的例子
<html>
<body>
<script type="text/javascript">
var browser=navigator.appName
var b_version=navigator.appVersion
var version=parseFloat(b_version)
document.write("瀏覽器名稱:"+browser)
document.write("<br />")
document.write("瀏覽器版本:"+ version)
</script>
</body>
</html>
<html>
<body>
<script type="text/javascript">
document.write("<p>瀏覽器:")
document.write(navigator.appName + "</p>")
document.write("<p>瀏覽器版本:")
document.write(navigator.appVersion + "</p>")
document.write("<p>代碼:")
document.write(navigator.appCodeName + "</p>")
document.write("<p>平臺:")
document.write(navigator.platform + "</p>")
document.write("<p>Cookies 啓用:")
document.write(navigator.cookieEnabled + "</p>")
document.write("<p>瀏覽器的用戶代理報頭:")
document.write(navigator.userAgent + "</p>")
</script>
</body>
</html>
<html>
<body>
<script type="text/javascript">
var x = navigator;
document.write("CodeName=" + x.appCodeName);
document.write("<br />");
document.write("MinorVersion=" + x.appMinorVersion);
document.write("<br />");
document.write("Name=" + x.appName);
document.write("<br />");
document.write("Version=" + x.appVersion);
document.write("<br />");
document.write("CookieEnabled=" + x.cookieEnabled);
document.write("<br />");
document.write("CPUClass=" + x.cpuClass);
document.write("<br />");
document.write("OnLine=" + x.onLine);
document.write("<br />");
document.write("Platform=" + x.platform);
document.write("<br />");
document.write("UA=" + x.userAgent);
document.write("<br />");
document.write("BrowserLanguage=" + x.browserLanguage);
document.write("<br />");
document.write("SystemLanguage=" + x.systemLanguage);
document.write("<br />");
document.write("UserLanguage=" + x.userLanguage);
</script>
</body>
</html>
<html>
<head>
<script type="text/javascript">
function detectBrowser()
{
var browser=navigator.appName
var b_version=navigator.appVersion
var version=parseFloat(b_version)
if ((browser=="Netscape"||browser=="Microsoft InternetExplorer") && (version>=4))
{alert("您的瀏覽器已經很棒了!")}
else
{alert("您的瀏覽器需要升級了!")}
}
</script>
<body οnlοad="detectBrowser()">
</body>
</html>
3.五種未經實際測試的解決方法(僅供參考)
(1)protected void Page_Load(objectsender, EventArgs e)
{
HttpCapabilitiesBase r =(System.Web.Configuration.HttpCapabilitiesBase)Request.Browser;
string agent = (Request.UserAgent + "").ToLower().Trim();
if (r.Browser == "Mozilla")
Response.Write("可以識別:Mozilla");
else
Response.Write("不識別:Mozilla");
if (r.IsMobileDevice || r.Browser == "Unknown" || r.Browser == "Mozilla")
{
Response.Write("手機" + "\r\n" + r.Browser + "\r\n" + r.Type);
}
else
{
Response.Write("電腦" + "\r\n" + r.Browser + "\r\n" + r.Type);
}
}
(2)
protected void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.Request.Headers["user-agent"] != null && HttpContext.Current.Request.Headers["user-agent"].ToLower().ToString().IndexOf("mozilla") != -1)
{
//PC
}
else
{
//手機
}
}
(3)
{
bool result=false;}
string clientType=string.Concat(HttpContext.Current.Request.UserAgent);
if (clientType.ToLower().Contains("mozilla")|| clientType.ToLower().Contains("opera"))
{
result =true;
}
return result;
(4)
using System.Text.RegularExpressions;//頭部引入正則的命名空間
//爲了加強準確性,防止支持wap的瀏覽器如opera,加入操作系統驗證。openwave|後爲pc操作系統
string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|Longhorn|ubuntu|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";
string uAgent = Request.ServerVariables["HTTP_USER_AGENT"];
Regex reg = new Regex(osPat);
if (reg.IsMatch(uAgent))
{
Response.Write("電腦訪問");
}
else
{
Response.Write("手機訪問");
}
Response.Write("<br/>" + uAgent);
(5)
HttpCapabilitiesBase r = (System.Web.Configuration.HttpCapabilitiesBase)Request.Browser;
string browser = r.Browser.ToString().Trim().ToLower();
if (browser.Contains("firefox") || browser.Contains("ie"))
{
// Response.Write("電腦" + "——瀏覽器是——" + browser);--什麼都不做,繼續進行
}
else
{
// Response.Write("手機" + "——瀏覽器是——" + browser);
//跳到手機頁
Response.Redirect("http://www.jsdeai.com/index.html");
}