$.browser is undefined解决办法

news/2024/2/27 21:58:12

$.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…

【LinuxOS】IMG文件格式与ISO文件格式的区别

IMG是一种文件压缩格式&#xff08;archive format&#xff09;&#xff0c;主要是为了创建软盘的镜像文件&#xff08;disk image&#xff09;&#xff0c;它可以用来压缩整个软盘&#xff08;通常指软软盘&#xff0c;Floppy Disk或Diskette&#xff09;或整片光盘的内容&…

ISO 8601 格式是干什么的?底层原理是什么?

ISO 8601 是国际标准化组织&#xff08;ISO&#xff09;制定的一种表示日期和时间的格式标准。该标准的目的是提供一种标准的、易于理解和可互操作的日期和时间表示方法&#xff0c;以便于不同系统之间的数据交换和处理。ISO 8601 标准定义了多种日期和时间表示方法&#xff0c…

ISO 8601持续时间格式

ISO 8601 持续时间格式。 ISO 8601 中定义了一个时间间隔&#xff0c; 格式如下&#xff1a; ISO 8601持续时间格式如下&#xff1a; P(n)Y(n)M(n)DT(n)H(n)M(n)S其中&#xff1a; P是持续时间指示符&#xff0c;始终放置在持续时间的开头位置T是表示时间元素开始的指示符…

ISO,IMG,QCOW2磁盘镜像格式介绍

ISO、IMG 和 qcow2 是常见的镜像格式&#xff0c;它们在特性和用途上有所区别&#xff0c;不直接相互转换&#xff0c;但可以通过一些工具进行格式转换和转换到其他的虚拟化平台。下面是它们的特点和区别&#xff1a; 1、ISO&#xff08;光盘映像&#xff09;&#xff1a;ISO …

iso文件系统转换成img格式的步骤整理

1瑞芯微iso镜像转换 瑞芯微等一些嵌入式芯片无法使用u盘装系统&#xff0c;是使用芯片原厂的工具把文件系统导入到emmc或者ssd中的&#xff0c;我们可以使用下面的方法把iso的文件系统提取出来&#xff0c;然后烧写到开发板中&#xff1a; 使用版本前安装一下包&#xff1a; …

ISO 8601日期格式与持续时间格式

ISO 8601日期格式与持续时间格式 国际标准ISO 8601&#xff0c;是国际标准化组织的日期和时间的表示方法&#xff0c;全称为《数据存储和交换形式信息交换日期和时间的表示方法》。目前是2004年12月1日发行的第三版“ISO8601:2004”以替代1998年的第一版“ISO8601:1998”与200…

iso文件用什么打开?还有iso是什么东西?

对于使用光盘或者虚拟光驱安装操作系统或其它大型软件的时候都可以看到安装的文件是 ISO文件&#xff0c;很多朋友都不知道iso文件用什么打开&#xff0c;什么是 iso文件&#xff1f;最简单的说就是以iso为扩展名的文件&#xff0c;它是iso9660文件格式&#xff0c;一种光盘&a…

unity 2019 内置渲染管线 光照与Lighting面板 参数详解

文章目录 前言一 Unity的光照 与 烘焙光照1 unity完整的光照组成2 光的亮度与颜色3 全局光照直接光间接光5 间接光≠光照贴图 二 色彩空间与自动烘焙1 unity的色彩空间2 自动烘焙光照 三 烘焙1 什么是烘焙&#xff0c;烘焙的是什么2 如何进行烘焙3 烘焙的优点和缺点4 查看光照贴…

分析分布式架构-技术

分布式系统的主要目的 提高系统的性能 提高吞吐量&#xff0c;服务更多的客户。提高并发和流量。 通过以下的技术提高处理高并发场景的能力 缓存系统&#xff0c;更快的响应客户端的请求。降低对数据库的压力(提高响应速度) 前端浏览器&#xff0c;网络&#xff0c;后端服务&a…

html页面 怎么打出平方,立方文字的

我们在开发中&#xff0c;会经常要显示一些特殊的字符&#xff0c;比如平方&#xff0c;立方的文字&#xff0c; 我之前不知道这个怎么打出来&#xff0c;之能写个div&#xff0c;里面写个2,再把这个div字体缩小&#xff0c;通过调整位置来达到显示这个平方的效果&#xff0c;…

element-ui的文本框 input加㎡平方米符号

属性&#xff1a; //这个图标属性㎡放在el-input里面<i slot"suffix" style"font-style:normal" class"metre">㎡</i>template代码&#xff1a; <el-input class"radioy" clearable:data-code contractCode.GARAGE_T…

平方米的计算机公式,表格中平方米计算公式(怎么用excel计算平方)

怎么用excel计算平方 用excel计算平方的方法&#xff1a; 1.一格&#xff0c;如图。 2.选择栏里的“插入”&#xff0c;然后选择下拉菜单的数”。 3.在常用函数里选择“数学与三角函数”&#xff0c;在出现的内容里&#xff0c;选择“POWER”函数。 4.弹出的POWER函数编辑框&am…
最新文章