$.browser is undefined解决办法

news/2024/12/13 17:19:57/

$.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插件。


原文链接:https://blog.csdn.net/lufuzhang2/article/details/46807813


http://www.ppmy.cn/news/936850.html

相关文章

java项目---2048

目录 游戏介绍 游戏玩法 全代码 &#xff08;1&#xff09;Main类&#xff1a; &#xff08;2&#xff09;GamePanel类 &#xff08;3&#xff09;Card类 &#xff08;4&#xff09;GameFrame类 项目设计思路 1.绘制一个窗口 2.创建菜单 3.创建所有空白卡片 &…

ISO转换QCOW2格式

首选创建虚拟磁盘 qemu-img create -f qcow2 CentOS-6.3-x86_64.qcow2 10G 其次从iso启动镜像 virt-install --name centos-6.3 --ram 1024 --cdromCentOS-6.3-x86_64-bin-DVD1.iso --disk CentOS-6.3-x86_64.qcow2,formatqcow2 --graphics vnc,listen0.0.0.0 --noautoconsole…

镜像文件iso有什么用

win7镜像文件iso有什么用? ISO文件是用来做光驱用的&#xff0c;也是封装文件或者整个系统用的&#xff0c;GHO是指定用来备份系统一个重要的文件。别的东西用不上的&#xff0c;原则上是用来恢复系统和备份系统用的。 ISO是光盘镜像文件&#xff0c;是将光盘打包压缩成一个IS…

img格式镜像转ISO格式

在做汇编学习时&#xff0c;需要用比较老的Windows XP来进行调试学习&#xff0c;因此找了最老的Windows XP&#xff08;CN_WINXP_PRO_ISO&#xff0c;无SP版本 &#xff09;&#xff0c;下载后发现镜像文件格式是img的&#xff0c;而virtualbox并不支持该镜像&#xff0c;网上…

Java格式化ISO 8601 日期格式

Java格式化ISO 8601 日期格式 public static void main(String[] args) {SimpleDateFormat s new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssXXX");String d s.format(new Date());System.out.println(d);}

ISO 8601 标准时间格式

国际标准化组织的国际标准ISO8601是日期和时间的表示方法&#xff0c;全称为《数据存储和交换形式信息交换日期和时间的表示方法》。目前是第二版ISO8601:2000以替代第一版ISO8601:1988。 日期表示法 年由4位数组成&#xff0c;以公历公元1年为0001年&#xff0c;以公元前1年为…

ISO/IEC13818-1 TS 格式

bslbf代表位串&#xff0c;即“Bit string, left bit first ”&#xff0c; uimsbf代表无符号整数&#xff0c;即”unsinged integer, most significant bit first”&#xff0c;数字表示该数据项所占的比特数 又一解释&#xff1a; bslbf &#xff08;bit string, left bit…

ISO-8601格式时间转换

/*** param strTime 示例:"2020-01-01 23:59:59"* return "2020-01-01T15:59:59Z"*/ //传入一个北京时间(字符串), 返回ISO-8601时间(字符串)格式出去. public static String getISOTime(String strTime) {try {Date date new SimpleDateFormat("yyy…