web developer tips (13):用ASP.NET Ajax获取浏览器的agent
原文地址:How to get the browser agent using ASP.NET Ajax
当编写一个web应用的时候,很多时候,针对不同的浏览器做不同的页面请求,ASP.NET Ajax 有个简单的办法通过 Sys.Browser来获取浏览器对象。
http://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
Firefox
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;
}
更多文章见:守望轩[http://www.watch-life.net/]