我试图根据用户是否正在运行IE来运行JQuery函数。原因是因为我所拥有的功能在IE中不起作用,所以我想在用户使用IE时运行另一个。我正在运行JQuery 1.9.1,因此我无法使用$.browser
。我正在尝试使用条件评论,但我不确定这是否可行。我试图在这里实现它,但它不起作用:http://jsfiddle.net/AsQ4E/
这是HTML
<!--[if IE]>
<input type="button" onclick="javascript:ie();" value="Click Me!" />
<![endif]-->
<!--[if !IE]> -->
<input type="button" onclick="javascript:notIE();" value="Click Me!" />
<!-- <![endif]-->
这是JQuery
function ie() {
alert("You are using IE");
}
function notIE() {
alert("You are not using IE");
}
我怎样才能让它发挥作用?这是最好的方式吗?
答案 0 :(得分:1)
使用javascript使用导航器
navigator.userAgent.indexOf('MSIE')
现在,如果你真的想要IE和版本,你应该从msdn
检查这个脚本答案 1 :(得分:0)
您是否尝试过查看“navigator.userAgent”。你可以用它来判断它的IE是否非常简单。还有其他有用的浏览器检测脚本,但如果您只需要对IE进行简单检查,我就会坚持使用上述内容。
答案 2 :(得分:0)
以下是使用msdn
提出的功能的示例http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
return rv;
}
function myFunction() {
if (getInternetExplorerVersion() > -1)
ie();
else
notIE();
}
function ie() {
alert("You are using IE");
}
function notIE() {
alert("You are not using IE");
}
</script>
</head>
<body>
<input type="button" onclick="javascript:myFunction();" value="Click Me!" />
</body>
</html>
答案 3 :(得分:0)
您可以使用以下功能检查
(function() {
"use strict";
var tmp = (document["documentMode"] || document.attachEvent) && "ev"
, msie = tmp
&& (tmp = window[tmp + "al"])
&& tmp("/*@cc_on 1;@*/")
&& +((/msie (\d+)/i.exec(navigator.userAgent) || [])[1] || 0)
;
return msie || void 0;})();
但您可以使用更多选项。看http://www.jquery4u.com/browsers-2/check-ie-version/
答案 4 :(得分:0)
另一种方法是使用条件注释,HTML5 Boilerpalte:
<强> HTML 强>
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<强> JS 强>
// tweak depending on version of IE
var isIe = $('.lt-ie9').length > 0; // or tagName / document.body etc...
button.on('click', function () {
if (isIe) {
console.log('ie');
}
else {
console.log('not ie');
}
});
当您将此与modernizr结合使用时,您可以获得UA嗅探的“好处”,并具有完整的功能检测功能。
答案 5 :(得分:0)
JavaScript中的条件注释,无需借助用户代理嗅探:
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;
}());
if(ie)
alert('You are using IE version' + ie);
else
alert('You are not using IE');