如何判断浏览器类型,现在国货那么多,有些国货甚至变态到JS认不出到底是IE还是其他。

三爷_ 2010-11-15 10:20:58
以前用JS做了个浏览器判断,非IE浏览器不让登录(主要是JS写的烂,兼容不了其他浏览器,怕出乱子),结果还是让人登录了,结果产生了一堆烂数据(悲剧。。。),不知道是JS判断有问题,还是,某些国货实在太要命。

js如下:
<script type="text/javascript">
var browser=navigator.appName
var b_version=navigator.appVersion
var version=parseFloat(b_version)
if (browser=="Microsoft Internet Explorer")
{alert(browser)}
else
{alert(browser)}
</script>


判断依据是这样。不知有何问题?

小弟太菜,请各路高手出手相助。。。。
...全文
215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
天下在我心 2010-11-15
  • 打赏
  • 举报
回复

script type="text/javascript"> 验证浏览器版本
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
//以下进行测试
if (Sys.ie)
document.write('IE: ' + Sys.ie);
if (Sys.firefox)
document.write('Firefox: ' + Sys.firefox);
if (Sys.chrome)
document.write('Chrome: ' + Sys.chrome);
if (Sys.opera)
document.write('Opera: ' + Sys.opera);
if (Sys.safari)
document.write('Safari: ' + Sys.safari);
</script>
lilijun04 2010-11-15
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<script>
function checkObj() {
if(navigator.userAgent.indexOf("IE")>0) {
return "IE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko")>0){
return "Gecko";
}

}
</script>
</HEAD>
<BODY onload="alert(check())">
</BODY>
</HTML>
winner2050 2010-11-15
  • 打赏
  • 举报
回复
其他浏览器主要是不兼容验证控件的问题大些。

你们的代码健壮性太差了吧,页面上面至少得有个Page.IsValid判断一下是否通过验证。

逻辑层也要判断数据输入的合法性。
newdigitime 2010-11-15
  • 打赏
  • 举报
回复
规范数据不能抛开服务器端的检测.这是最后一道关卡,也是必须的.
JS验证只是一个辅助检测.
chen_ya_ping 2010-11-15
  • 打赏
  • 举报
回复
现在写的JS,都是有jQuery来写的,兼容性是有保证的,至于国货都不在考虑范围,一般就是IE,firefox,google等,就行了。
fellowcheng 2010-11-15
  • 打赏
  • 举报
回复
var ver = top.opera ? (opera.version().replace(/\d$/, "") - 0)
: parseFloat((/(?:IE |fox\/|ome\/|ion\/)(\d+\.\d)/.
exec(navigator.userAgent) || [, 0])[1]);


var dom = {
ie: !!top.VBArray && Math.max(document.documentMode || 0, ver),
firefox: !!top.crypto && ver, //内核Gecko
opera: !!top.opera && ver, //内核 Presto 9.5为Kestrel 10为Carakan
chrome: !!(top.google && top.chrome) && ver, //内核V8
safari: /apple/i.test(navigator.vendor) && ver// 内核 WebCore
}
//alert(dom.ie);
//alert(dom.firefox);
//alert(dom.opera);
//alert(dom.chrome);
//alert(dom.safari)

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧