目前我正在使用 jQuery.browser 来检测 IE7 及更低版本
if ($.browser.msie && parseInt($.browser.version) <= 7) {
//codes
}
但是 jQuery.browser 在 jQuery 1.3 中被弃用并在 jQuery 1.9 中被删除,我从 jQuery 网站上读到我们应该使用特征检测来代替(jQuery.support)。
那么,如何使用 jQuery.support 检测 IE7 及更低版本?
目前我正在使用 jQuery.browser 来检测 IE7 及更低版本
if ($.browser.msie && parseInt($.browser.version) <= 7) {
//codes
}
但是 jQuery.browser 在 jQuery 1.3 中被弃用并在 jQuery 1.9 中被删除,我从 jQuery 网站上读到我们应该使用特征检测来代替(jQuery.support)。
那么,如何使用 jQuery.support 检测 IE7 及更低版本?
最好的方法是使用条件注释并使用 jQuery 的hasClass().
<!--[if lt IE 7]> <html class="ie6"> <![endif]-->
<!--[if IE 7]> <html class="ie7"> <![endif]-->
<!--[if IE 8]> <html class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
在您的 jQuery 中,检查 IE 7:
// Check IE 7
if ($('html').hasClass('ie7');
这种方法无论如何都不能被欺骗。另请参阅:Paul Irish 的条件样式表。
这个小功能会告诉你按钮代码是否损坏:
function isButtonBroken()
{
var b = document.createElement('button');
b.value = 1;
b.appendChild(document.createTextNode('2'));
return b.value === '12';
}
jQuery.Support 不给你浏览器。从 jQuery 1.9 开始,不推荐使用 $.browser 函数。如果您快速完成后最简单的方法是使用浏览器本机导航器对象。
//check for IE7
if(navigator.appVersion.indexOf("MSIE 7.")!=-1)
使用 Modernizr
//check for IE7 or less
if ($('html').hasClass('lt-ie7');
但是不推荐这样做,因为浏览器很容易“欺骗”这个对象。使用诸如 Moderizer 之类的库来进行特征检测是现代方法。有关更多详细信息,请参阅:使用 JAVASCRIPT/JQUERY 检查 IE 版本的 5 种以上方法
正如其他人所说,尝试检测浏览器版本是一个坏主意,您应该依赖功能检测。
也就是说,检测IE 浏览器渲染引擎的唯一可靠方法是使用条件注释。您可以使用这个小片段为您获取它:
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : undef;
}());
请记住,这仅适用于支持条件注释的 IE 版本,不适用于 IE10 或更高版本。
无脚本解决方案可以基于为按钮提供一种提交类型和一个名称,即您要提交的值。然后,在服务器上,使操作依赖于 name 属性的值,而不是值,例如
<button type="submit" name="whatever" value="Click me 0">Click me 0</button>
现在每个浏览器都会将按钮提交为&whatever=Click+me+0. 我没有 IE 7 可以测试,但从你发布的内容来看,应该可以。
如果表单中有多个按钮,只有点击提交表单的那个会成功,所以只会提交那个按钮的名称和值。
当然最简单的是使用输入类型提交,但也许你不能这样做。
U 可以使用以下条件进行检测。
if (!$.support.leadingWhitespace) {
//IE7 stuff
}
您无法使用 jQuery.support 检测浏览器。
与其检查浏览器,不如检查要使用的浏览器的功能。
例如,如果你想使用 ajax 功能,你可以通过 jQuery.support.ajax 检查 XMLHttpRequest 对象的存在
var ajaxEnabled = $.support.ajax;
if (ajaxEnabled) {
// do something
}
jQuery.browser 可能会在 jQuery 的未来版本中移动到插件中。
并且还说
因为 $.browser 使用 navigator.userAgent 来确定平台,所以它很容易受到用户的欺骗或浏览器本身的虚假陈述。在可能的情况下,最好完全避免使用特定于浏览器的代码。$.support 属性可用于检测对特定功能的支持,而不是依赖于 $.browser。
您可以制作自己的浏览器检测代码。见下文。但请记住,正如 jQuery 文档所说,这段代码很容易受到欺骗。
var ua = navigator.userAgent.toLowerCase();
var isOpera : (ua.indexOf('opera') >= 0) ? true : false;
var isFirefox : (ua.indexOf('firefox') >= 0) ? true : false;
var isMSIE : (ua.indexOf('msie') >= 0) ? true : false;
var isMSIE6 : (ua.indexOf('msie 6.0') >= 0) ? true : false;
var isMSIE7 : (ua.indexOf('msie 7.0') >= 0) ? true : false;
var isMSIE8 : (ua.indexOf('msie 8.0') >= 0) ? true : false;
var isMSIE9 : (ua.indexOf('msie 9.0') >= 0) ? true : false;
// and other browsers...