web developer tips (13):用ASP.NET Ajax获取浏览器的agent

原文地址:How to get the browser agent using ASP.NET Ajax

当编写一个web应用的时候,很多时候,针对不同的浏览器做不同的页面请求,ASP.NET Ajax 有个简单的办法通过 Sys.Browser来获取浏览器对象。

https://www.watch-life.net/visual-studio/get-the-browser-agent-using-asp-net-ajax.html

例如,想针对Opera浏览器做一些不同的页面请求,下面的代码块显示可以如何:

<script language="javascript" type="text/javascript">
function DoSomething() {
    if(Sys.Browser.agent === Sys.Browser.Opera)
    {
        // opera specific code here
    }
}
</script>

还有些其他有用的浏览器对象属性,比如,Sys.Browser.version.toString(),将返回浏览器的版本。可以针对每个浏览器版版来决定如何做。

1)对于Sys.Browser.agent可能返回如下四个值

Sys.Browser.InternetExplorer
Sys.Browser.FireFox
Sys.Browser.Safari
Sys.Browser.Opera

2)Sys.Browser还有个“name”属性:Sys.Browser.name可能返回如下四个值

Microsoft Internet Explorer

Safari
Opera

对于非上述四种主流的浏览器的检测不能使用Sys.Browser.agent,则可以使用Sys.Browser.name和Sys.Browser.version 来判断。

3)针对Sys.Browser.agent 在Microsoft AJAX Library的实现如下:

Sys.Browser = {};
Sys.Browser.InternetExplorer = {};
Sys.Browser.Firefox = {};
Sys.Browser.Safari = {};
Sys.Browser.Opera = {};
Sys.Browser.agent = null;
Sys.Browser.hasDebuggerStatement = false;
Sys.Browser.name = navigator.appName;
Sys.Browser.version = parseFloat(navigator.appVersion);
if (navigator.userAgent.indexOf(‘ MSIE ‘) > -1) {
Sys.Browser.agent = Sys.Browser.InternetExplorer;
Sys.Browser.version = parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);
Sys.Browser.hasDebuggerStatement = true;
}
else if (navigator.userAgent.indexOf(‘ Firefox/’) > -1) {
Sys.Browser.agent = Sys.Browser.Firefox;
Sys.Browser.version = parseFloat(navigator.userAgent.match(/ Firefox\/(\d+\.\d+)/)[1]);
Sys.Browser.name = ‘Firefox’;
Sys.Browser.hasDebuggerStatement = true;
}
else if (navigator.userAgent.indexOf(‘ Safari/’) > -1) {
Sys.Browser.agent = Sys.Browser.Safari;
Sys.Browser.version = parseFloat(navigator.userAgent.match(/ Safari\/(\d+(\.\d+)?)/)[1]);
Sys.Browser.name = ‘Safari’;
}
else if (navigator.userAgent.indexOf(‘Opera/’) > -1) {
Sys.Browser.agent = Sys.Browser.Opera;
}

你可能也会喜欢以下文章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注