jquery获取浏览器版本问题。

softroad 2011-12-27 02:24:30
不知道有人遇到过没,用localhost访问,返回的是ie8,用本地ip访问返回的是ie7。我是直接从ie6升级到ie8的。
求高人指点。
...全文
640 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
beiouwolf 2011-12-28
  • 打赏
  • 举报
回复
这样判断没什么用处,用户代理可以随便改的
你下个IE9,可以自定义浏览器模式...

jquery1.3以后就已经不建议使用$.browers方法了
取代的函数是 jQuery.support
这个函数用来测试浏览器是否支持某些操作,具体的测试属性:

虽然jQuery包含了一些属性,开发者可以随意添加自己的需要决定的。许多jQuery.support性能相当低,所以他们对插件和jQyery核心和非常有用,而不是一般日常的日常开发。由于这些测试需要jQuery的内部,他们必须在每一页上都进行加载;出于这个原因这个列表也很简短,仅限于由jQuery本身所需的功能。

在这些测试包括jQuery.support如下:

ajax 等于为true,如果浏览器能够创建一个XMLHttpRequest对象。
boxModel:等于为true。如果页面是根据W3C的CSS盒模型渲染 (IE 6和7的怪异模式下为false).直到文件准备就绪,此属性为空。
changeBubbles:等于为true。如果改变事件向上冒泡的DOM树,根据所要求的 W3C的DOM事件模型 。 (目前在IE返回false和jQuery模拟气泡)。
checkClone 等于为true,如果在浏览器正确地克隆单选按钮或复选框的选中状态文档片段。
checkOn 等于为true,如果CheckBox的值默认为“on”时未指定任何值。
cors 等于为true,如果浏览器可以创建一个XMLHttpRequest对象,如果该XMLHttpRequest对象有一个withCredentials属性。要启用跨域请求的环境中不支持cors yet但尚未允许跨域 XHR请求 (Windows小工具等),设置$.support.cors = true;。 CORS WD
cssFloat:等于为true。如果该属性名称包含CSS float的值是.cssFloat,定义在CSS的规格 。(这是目前在IE中返回false,它使用styleFloat代替)。
hrefNormalized:等于为true。如果.getAttribute()方法检索href元素合格的URL属性不变,而不是归到一个完全合格的URL。(目前在IE中返回false,URL的规范化 )。
DOM l3 spec
htmlSerialize: 等于为true。如果浏览器能够序列化/插入元素使用.innerHTML元素属性。(目前在IE中会返回false)。
HTML5 wd
leadingWhitespace:等于为true。如果浏览器插入与内容完全按照所提供的.innerHTML,具体地说, 特别是,如果前面的空白字符将被保留。(目前在IE 6-8中会返回false)
HTML5 wd
noCloneChecked等于为true,如果克隆的DOM元素的复制的状态.checked的expando。(这在IE中会返回false)。 (在jQuery 1.5.1新增)
noCloneEvent: 等于为true,如果克隆的DOM元素的事件处理程序是没有创建(即,如果在源元素的事件处理程序不克隆)。 (这是在IE中会返回false)。
DOM l2 spec
opacity: 等于为true,如果浏览器能正确地解释透明度的样式属性。 (目前在IE中返回false,因为他用alpha滤镜代替)。
CSS3 spec
optDisabled 等于为true,如果在禁用选项元素选择元素不会自动标记为禁用。
HTML5 WD
optSelected 等于true,如果一个<option>元素,默认选择的有一个工作中的selected属性。
HTML5 WD
scriptEval: 等于true,如果内嵌脚本执行时自动计算并插入到文档中使用标准的DOM操作方法一样,想这样的appendChild()和createTextNode()。(目前在IE中返回false,它使用.text插入可执行的脚本)。
注:在此之前到jQuery 1.5.1,scriptEval()方法是静态的scriptEval属性。到一个方法的改变允许测试,直至第一次使用,以防止内容安全政策内嵌脚本侵犯推迟。
HTML5 WD
style: 等于true,如果一个元素的内联样式都可以通过DOM访问属性访问style,通过DOM级别2规范的要求。在这种情况下, .getAttribute('style')可以检索该值,在IE浏览器, .cssText是用于此目的。
DOM l2 Style spec
submitBubbles: 等于为true,如果该事件提交了所需的冒泡作为DOM树, W3C的DOM事件模型 。(目前在IE返回false和jQuery模拟气泡)。
tbody: 等于true,如果一个空<table>元素可以存在没有<tbody>元素。根据HTML规范,这个子元素是可选的,因此,属性应该是真实的完全兼容的浏览器。如果false,我们必须考虑的浏览器中注入<tbody>标签的可能性。目前在IE返回false,它会自动tbody如果它不是在目前的字符串分配innerHTML )。

beiouwolf 2011-12-28
  • 打赏
  • 举报
回复
这样判断没什么用处,用户代理可以随便改的
你下个IE9,可以自定义浏览器模式...

jquery1.3以后就已经不建议使用$.browers方法了
取代的函数是 jQuery.support
这个函数用来测试浏览器是否支持某些操作,具体的测试属性:

虽然jQuery包含了一些属性,开发者可以随意添加自己的需要决定的。许多jQuery.support性能相当低,所以他们对插件和jQyery核心和非常有用,而不是一般日常的日常开发。由于这些测试需要jQuery的内部,他们必须在每一页上都进行加载;出于这个原因这个列表也很简短,仅限于由jQuery本身所需的功能。

在这些测试包括jQuery.support如下:

ajax 等于为true,如果浏览器能够创建一个XMLHttpRequest对象。
boxModel:等于为true。如果页面是根据W3C的CSS盒模型渲染 (IE 6和7的怪异模式下为false).直到文件准备就绪,此属性为空。
changeBubbles:等于为true。如果改变事件向上冒泡的DOM树,根据所要求的 W3C的DOM事件模型 。 (目前在IE返回false和jQuery模拟气泡)。
checkClone 等于为true,如果在浏览器正确地克隆单选按钮或复选框的选中状态文档片段。
checkOn 等于为true,如果CheckBox的值默认为“on”时未指定任何值。
cors 等于为true,如果浏览器可以创建一个XMLHttpRequest对象,如果该XMLHttpRequest对象有一个withCredentials属性。要启用跨域请求的环境中不支持cors yet但尚未允许跨域 XHR请求 (Windows小工具等),设置$.support.cors = true;。 CORS WD
cssFloat:等于为true。如果该属性名称包含CSS float的值是.cssFloat,定义在CSS的规格 。(这是目前在IE中返回false,它使用styleFloat代替)。
hrefNormalized:等于为true。如果.getAttribute()方法检索href元素合格的URL属性不变,而不是归到一个完全合格的URL。(目前在IE中返回false,URL的规范化 )。
DOM l3 spec
htmlSerialize: 等于为true。如果浏览器能够序列化/插入元素使用.innerHTML元素属性。(目前在IE中会返回false)。
HTML5 wd
leadingWhitespace:等于为true。如果浏览器插入与内容完全按照所提供的.innerHTML,具体地说, 特别是,如果前面的空白字符将被保留。(目前在IE 6-8中会返回false)
HTML5 wd
noCloneChecked等于为true,如果克隆的DOM元素的复制的状态.checked的expando。(这在IE中会返回false)。 (在jQuery 1.5.1新增)
noCloneEvent: 等于为true,如果克隆的DOM元素的事件处理程序是没有创建(即,如果在源元素的事件处理程序不克隆)。 (这是在IE中会返回false)。
DOM l2 spec
opacity: 等于为true,如果浏览器能正确地解释透明度的样式属性。 (目前在IE中返回false,因为他用alpha滤镜代替)。
CSS3 spec
optDisabled 等于为true,如果在禁用选项元素选择元素不会自动标记为禁用。
HTML5 WD
optSelected 等于true,如果一个<option>元素,默认选择的有一个工作中的selected属性。
HTML5 WD
scriptEval: 等于true,如果内嵌脚本执行时自动计算并插入到文档中使用标准的DOM操作方法一样,想这样的appendChild()和createTextNode()。(目前在IE中返回false,它使用.text插入可执行的脚本)。
注:在此之前到jQuery 1.5.1,scriptEval()方法是静态的scriptEval属性。到一个方法的改变允许测试,直至第一次使用,以防止内容安全政策内嵌脚本侵犯推迟。
HTML5 WD
style: 等于true,如果一个元素的内联样式都可以通过DOM访问属性访问style,通过DOM级别2规范的要求。在这种情况下, .getAttribute('style')可以检索该值,在IE浏览器, .cssText是用于此目的。
DOM l2 Style spec
submitBubbles: 等于为true,如果该事件提交了所需的冒泡作为DOM树, W3C的DOM事件模型 。(目前在IE返回false和jQuery模拟气泡)。
tbody: 等于true,如果一个空<table>元素可以存在没有<tbody>元素。根据HTML规范,这个子元素是可选的,因此,属性应该是真实的完全兼容的浏览器。如果false,我们必须考虑的浏览器中注入<tbody>标签的可能性。目前在IE返回false,它会自动tbody如果它不是在目前的字符串分配innerHTML )。

coooliang 2011-12-28
  • 打赏
  • 举报
回复

var Sys = {};
var ua = navigator.userAgent.toLowerCase();
alert(ua);
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);
coooliang 2011-12-28
  • 打赏
  • 举报
回复
可以得到是什么浏览器和浏览器的版本:

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


softroad 2011-12-27
  • 打赏
  • 举报
回复
http://localhost http://192.168.25.23
比如这两种方式返回的版本号不一致?
softroad 2011-12-27
  • 打赏
  • 举报
回复
谢谢楼上2位的回答,我用的就是这样的方法,但是用localhost和本地ip访问就出现了不同版本。。。。
softroad 2011-12-27
  • 打赏
  • 举报
回复
谢谢楼上2位的回答,我用的就是这样的方法,但是用localhost和本地ip访问就出现了不同版本。。。。
huangxw000 2011-12-27
  • 打赏
  • 举报
回复
显示当前 IE 浏览器版本号。

jQuery 代码:
if ( $.browser.msie )
alert( $.browser.version );
金先生1 2011-12-27
  • 打赏
  • 举报
回复
比对一下代码
主要使用的方法:$.browser.['浏览器关键字']
<script type="text/javascript">
$(function() {
if($.browser.msie) {
$( function() { alert("this is msie"); });
}
else if($.browser.safari)
{
$( function() { alert("this is safari!"); });
}
else if($.browser.mozilla)
{
$( function() { alert("this is mozilla!"); });
}
else if($.browser.opera)
{
$( function() { alert("this is opera"); });
}
else
{
$( function() { alert("i don't konw!"); });
}
});
</script>

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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