`
阅读更多

jquery判断浏览器版本插件,jquery-browser.js,jquery 判断是否为ie浏览器插件

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年7月22日 15:05:38 星期五

http://fanshuyao.iteye.com/

 

一、jquery判断浏览器版本插件,jquery-browser.js

 

jquery 1.9 之后已经删除判断浏览器版本的方法:

 

$.browser.msie

$.browser.version

 原因是:

 

注意:通过user agent字符串来检测浏览器不是一个好主意,在1.9中将完全移除该方法,不过你可以使用jQuery Migrate(迁移)插件。或者你可以试试Modernizr

 

但如果想用怎么办呢?

 

二、解决方法:

 

复制下面的代码,保存为jquery-browser.js,在jquery.js下增加jquery-browser.js,就可以使用jquery删除的浏览器版本判断的方法了。

 

附件也有文件,可直接下载。

 

(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);

 

另外网上也有另一个插件,原理是一样的。本人没有测试过,先记录在这里吧:

jQuery.extend({
	browser: function() 
	{
		var
	    rwebkit = /(webkit)\/([\w.]+)/,
	    ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
	    rmsie = /(msie) ([\w.]+)/,
	    rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,    
	    browser = {},
	    ua = window.navigator.userAgent,
	    browserMatch = uaMatch(ua);

	    if (browserMatch.browser) {
	        browser[browserMatch.browser] = true;
	        browser.version = browserMatch.version;
	    }
	    return { browser: browser };
	},
});

function uaMatch(ua) 
{
        ua = ua.toLowerCase();

        var match = rwebkit.exec(ua)
                    || ropera.exec(ua)
                    || rmsie.exec(ua)
                    || ua.indexOf("compatible") < 0 && rmozilla.exec(ua)
                    || [];

        return {
            browser : match[1] || "",
            version : match[2] || "0"
        };
}

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年7月22日 15:05:38 星期五

http://fanshuyao.iteye.com/

1
4
分享到:
评论
1 楼 蕃薯耀 2016-07-22  
jquery判断浏览器版本插件,jquery-browser.js

>>>>>>>>
蕃薯耀

相关推荐

    jquery-migrate-1.2.1.js文件

    `jquery-migrate-1.2.1.min.js` 是这个插件的压缩版本,用于生产环境,它具有更小的文件大小,减少了页面加载时间,但同样提供向后兼容性支持。 **jqPrint插件与jQuery Migrate的结合** `jqPrint` 是一个jQuery...

    jquery-migrate-3.0.1.js jar包

    jQuery Migrate 3.0.1.js是这个插件的一个特定版本,主要关注以下几点: 1. **API兼容性修复**:这个版本包含了对一些在新版本中被移除的API的兼容性支持,如`.browser`、`.data()`的某些用法等,使得使用这些API的...

    esdk-obs-browserjs-es5-3.19.9_javascrip_

    本文将深入探讨如何使用JavaScript SDK(esdk-obs-browserjs-es5-3.19.9.js)来与华为云OBS进行交互。 首先,了解JavaScript SDK是至关重要的。它是一个轻量级的库,为开发者提供了在浏览器环境中操作OBS的API接口...

    jquery-migrate-1.2.1.min.js

    2. **$.browser**: 这个已经被移除的属性用于检测浏览器类型和版本,`jQuery Migrate` 会提供一个模拟的版本。 3. **$.support**: 这个对象用来检测浏览器的特性,`jQuery Migrate` 会更新一些不再自动检测的特性。 ...

    jquery-migrate3.4版本

    jQuery Migrate 是一个插件,它的主要目的是帮助开发者平滑地过渡到较新版本的 jQuery,解决老版本代码在新版本中可能遇到的兼容性问题。在jQuery Migrate 3.4.0版本中,我们看到了对旧API和功能的维护,以及对现代...

    jQuery判断浏览器版本及鉴别浏览器类型代码.rar

    jQuery的核心对象`$.browser`(在jQuery 1.9及以后的版本中已废弃,但可以通过jQuery Migrate插件恢复)可以用来检测浏览器类型。例如,`$.browser.mozilla`将返回一个布尔值,表示用户是否正在使用Firefox。同样,...

    前端项目-jquery-browser.zip

    使用这个jQuery浏览器检测插件的步骤大致如下: 1. **引入jQuery库**:首先确保你的项目中已经引入了jQuery,因为这个插件依赖于jQuery环境。 2. **引入插件**:将插件的.js文件链接到你的HTML文档中,通常放在`...

    jquery判断浏览器版本过低代码.zip

    "jquery判断浏览器版本过低代码.zip"这个压缩包提供了一个解决方案,它包含了一个JavaScript代码片段,用于检测浏览器是否支持HTML5和CSS3,并在不支持的情况下提示用户升级或更换浏览器。 jQuery是一个广泛使用的...

    jQuery判断浏览器版本过低提示代码.zip

    &lt;title&gt;jQuery浏览器版本检测 &lt;script src="https://code.jquery.com/jquery-3.x.min.js"&gt;&lt;/script&gt; &lt;script src="js/main.js"&gt; &lt;link rel="stylesheet" href="css/style.css"&gt; &lt;!-- 页面内容 --&gt; ``` 接...

    jquery1.9判断浏览器类型和版本

    总的来说,虽然jQuery 1.9移除了`$.browser`,但通过JavaScript的`navigator`对象,我们仍然可以有效地判断浏览器类型和版本。使用这种方法时,要注意保持代码的可维护性和兼容性,避免过于依赖特定浏览器的行为。...

    jQuery-in-Action.part2.pdf

    例如,如果某个特性只支持某些浏览器版本,可以通过这些标志来进行判断。 ##### 6.1.2 其他标志 除了浏览器检测标志之外,还有一些其他的标志用于提供额外的信息,比如: - `$.support`: 提供一系列关于当前...

    jQuery 1.x 向下兼容插件(最好用的兼容插件,没有之一)

    jQuery Migrate 是一个官方维护的插件,其主要目标是帮助开发者从较旧的 jQuery 版本平滑过渡到较新的版本。这个插件提供了一种机制,可以在不修改现有代码的情况下,使那些已被废弃的方法重新生效,如 `live`、`...

    jbox 兼容jQuery1.9以上版本,解决弹出框位置错误问题

    总结来说,jBox在面对jQuery 1.9及以上版本时,通过更新`browser.js`来处理浏览器兼容性问题,通过改进定位算法来解决有滚动条时弹出框位置错误的问题,并且可能对jQuery的新语法进行了适配,确保在`jquery-3.1.1.js...

    jquery-3.4.1.rar

    5. **jQuery插件**:jQuery拥有丰富的第三方插件,如Bootstrap的jQuery插件、表单验证插件、轮播图插件等,这些插件扩展了jQuery的功能,满足更多开发需求。 6. **jQuery 3.x系列的变化**: - **移除旧浏览器支持*...

    jQuery1.9.1含jquery-1.9.1-vsdoc

    在jQuery 1.9.1中,开发者会注意到一些旧API的移除,如`$.browser`,这个属性曾经用于检测浏览器类型,但在现代浏览器兼容性良好的情况下,已经不再必要。同时,1.9.1版本引入了一些新的API和改进,如`.on()`和`.off...

    Vscode常用插件及安装-改.pdf

    4. 直接让页面在浏览器打开插件(ViewinBrowser/ Open In Browser):这个功能通常是为了更方便地预览开发中的网页。通常情况下,我们可能需要手动打开文件系统,找到对应的HTML文件进行双击打开。而有了这类插件,...

    前端项目-jquery-i18next.zip

    - `i18next-browser-language探测器`: 自动检测用户浏览器的首选语言。 - `i18next-scanner`: 一个构建工具插件,可以自动提取代码中的翻译键并生成资源文件。 **六、实时语言切换** 在用户界面中提供一个语言切换...

Global site tag (gtag.js) - Google Analytics