.net訪問網站的是手機還是PC

我主要看了這裏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 的返回值了。

2.更好的瞭解userAgent :

下面是4個程序的例子

(1)檢測訪問者的瀏覽器和版本號

<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>

(2)有關訪問者的瀏覽器的更多信息

<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>

 

(3)有關訪問者的瀏覽器的全部細節

<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>

 

(4)根據瀏覽器來提醒用戶

<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>

</head>

<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)

publicstaticbool GetClientWeb()
{

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");
            }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章