$.browser is undefined解决办法

原创 2015年07月08日 19:59:58

$.browser是用来获取浏览器基本信息的。

jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。

解决办法:

1.使用1.9以下版本的JQuery(当然,这个办法不太合适,也太麻烦);

2.引用$.browser.js,代码如下

(function(jQuery){   
  
if(jQuery.browser) return;   
  
jQuery.browser = {};   
jQuery.browser.mozilla = false;   
jQuery.browser.webkit = false;   
jQuery.browser.opera = false;   
jQuery.browser.msie = false;   
  
var nAgt = navigator.userAgent;   
jQuery.browser.name = navigator.appName;   
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);   
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);   
var nameOffset,verOffset,ix;   
  
// In Opera, the true version is after "Opera" or after "Version"   
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {   
jQuery.browser.opera = true;   
jQuery.browser.name = "Opera";   
jQuery.browser.fullVersion = nAgt.substring(verOffset+6);   
if ((verOffset=nAgt.indexOf("Version"))!=-1)   
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);   
}   
// In MSIE, the true version is after "MSIE" in userAgent   
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {   
jQuery.browser.msie = true;   
jQuery.browser.name = "Microsoft Internet Explorer";   
jQuery.browser.fullVersion = nAgt.substring(verOffset+5);   
}   
// In Chrome, the true version is after "Chrome"   
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {   
jQuery.browser.webkit = true;   
jQuery.browser.name = "Chrome";   
jQuery.browser.fullVersion = nAgt.substring(verOffset+7);   
}   
// In Safari, the true version is after "Safari" or after "Version"   
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {   
jQuery.browser.webkit = true;   
jQuery.browser.name = "Safari";   
jQuery.browser.fullVersion = nAgt.substring(verOffset+7);   
if ((verOffset=nAgt.indexOf("Version"))!=-1)   
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);   
}   
// In Firefox, the true version is after "Firefox"   
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {   
jQuery.browser.mozilla = true;   
jQuery.browser.name = "Firefox";   
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);   
}   
// In most other browsers, "name/version" is at the end of userAgent   
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <   
(verOffset=nAgt.lastIndexOf('/')) )   
{   
jQuery.browser.name = nAgt.substring(nameOffset,verOffset);   
jQuery.browser.fullVersion = nAgt.substring(verOffset+1);   
if (jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()) {   
jQuery.browser.name = navigator.appName;   
}   
}   
// trim the fullVersion string at semicolon/space if present   
if ((ix=jQuery.browser.fullVersion.indexOf(";"))!=-1)   
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);   
if ((ix=jQuery.browser.fullVersion.indexOf(" "))!=-1)   
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);   
  
jQuery.browser.majorVersion = parseInt(''+jQuery.browser.fullVersion,10);   
if (isNaN(jQuery.browser.majorVersion)) {   
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);   
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);   
}   
jQuery.browser.version = jQuery.browser.majorVersion;   
})(jQuery);   
新建一个js,将上面代码复制进去,然后在jsp中引用即可。


关于 JS中 (function(){xxx})() 写法的解释

自执行匿名函数:

  • 常见格式:(function() { /* code */ })();
  • 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。
  • 作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScript库的代码也基本是这种组织形式。

总结一下,1.执行函数的作用主要为 匿名 和 自动执行,代码在被解释时就已经在运行了。

2.利用匿名函数和闭包来执行xxx里面的代码,同时所有的定义比如变量的作用域都在闭包里,不会污染到外部命名空间

3.如果想实现某个功能又不想污染全局变量的时候,会用这个自执行的匿名函数,常见于jquery插件。




版权声明:本文为博主原创文章,未经博主允许不得转载。

keil 4出现ientifier"xxxxx" is undefined 问题,而又找不到出语法问题时,可能的问题。

Keil 4提示identifier “ xxxxxx” is undefined 错误的可能原因 事件发生在2013年9月18日星期三,恰值“九一八”国耻日,勿忘国耻。   果然是国耻日,今...
  • Rseven7
  • Rseven7
  • 2013年09月18日 16:42
  • 2270

php提示undefined index的几种解决方法

平时用$_post[''],$_get['']获取表单中参数时会出现Notice: Undefined index: -------- 我们经常接收表单POST过来的数据时报Undefined ind...
  • SakuraLLj
  • SakuraLLj
  • 2016年03月11日 16:44
  • 2303

Microsoft Web Browser控件的常用功能

http://www.moon-soft.com/doc/33963.htm   微软的Web Browse控件 使用方法,选择菜单 Project -> Add to Project -> Co...
  • codespad
  • codespad
  • 2013年03月04日 11:09
  • 1072

SWT Browser 渲染 HTML 页面内容若干问题的解决方案

简介: 本文介绍了 SWT Browser 渲染定制的 HTML 页面内容中一些常见问题(主要是国际化问题、Accessibility 问题 和平台相关问题)的解决方案。接下来,本文将详细的讲解问题的...
  • aerchi
  • aerchi
  • 2015年03月05日 14:57
  • 3169

Keil编译常见问题

1.出现warning:  #1-D: last line of file ends without a newline 解决方案:这是由于在函数的“}”之后没有回车的原因造成的,添加回车后,可消除警...
  • u013199724
  • u013199724
  • 2014年04月02日 10:29
  • 1406

区块链学堂(11):Browser-solidity 2–右侧的奥秘

首先重复一遍Browser-solidity的地址:https://ethereum.github.io/browser-solidity Browser-solidity是一个官方提供的一个基于浏览...
  • ethchinese
  • ethchinese
  • 2017年04月03日 16:50
  • 1618

浏览器兼容性测试工具Spoon Browser Sandbox

浏览器兼容性测试工具Spoon Browser Sandbox 转载自:http://blog.sina.com.cn/s/blog_6d3c1ec60101cyfz.html   A、浏览器兼...
  • wulinbanxia
  • wulinbanxia
  • 2017年05月25日 14:29
  • 681

php提示undefined index的几种解决办法

php提示undefined index的几种解决方法 虽然可以通过设置错误显示方式来隐藏这个提示,但是这样也有隐患,就是在服务器的日志中会记录这些提示,导致日志文件异常庞大 平时用POST[′′...
  • csdnhyp
  • csdnhyp
  • 2016年08月06日 21:32
  • 195

SWT Browser(内嵌浏览器)

browser浏览器swtbuttonurlstring 原文地址:http://blog.csdn.net/hemingwang0902/article/details/4405310 ...
  • luoww1
  • luoww1
  • 2013年11月12日 09:36
  • 4503

UCSC浏览器的安装

环境:Ubuntu 12.04 amd64 安装Mysql数据库。 sudo apt-get install mysql-server mysql-client libdbd-mysql-pe...
  • biocq
  • biocq
  • 2013年05月21日 13:03
  • 2106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:$.browser is undefined解决办法
举报原因:
原因补充:

(最多只允许输入30个字)