用于IE8的Jquery浏览器检测

时间:2011-02-28 12:32:30

标签: jquery css internet-explorer-8 position

我想对除jquery中的IE之外的所有其他浏览器执行绝对位置。我有以下代码。

<script type="text/javascript">

var positions=$("#gift_field").position();
var top=positions.top;
$("#discount_box").css("float","right");
if (!$.browser.msie){
   $("#discount_box").css("position","absolute");
}

$(".discount_box").css("top",positions.top);
var wd=(positions.left) + 400;
$(".discount_box").css("left",wd);

</script>

但这不起作用。

5 个答案:

答案 0 :(得分:5)

2件事......

  1. 浏览器已弃用 - 建议您改为使用功能检测。

  2. 如果您使用严格的doctype,则IE(甚至6)中的绝对定位很好 - 任何修复都可以在条件注释中包含的IE特定样式表中完成。

答案 1 :(得分:3)

您确定在IE的每个过去,现在和未来版本中,您尝试做的是否正确?你想解决什么问题?也许使用像Modernizr这样的东西,在你的CSS中添加一个特殊情况,并且只要IE像其他浏览器一样运行就让它自动停止使用?

如果您完全确定您想要的是检测IE8(或任何其他版本),那么您不需要任何JavaScript来执行此操作 - 您可以使用以下内容:

<!doctype html>  
<!--[if lt IE 7 ]> <html lang="en-us" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en-us" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en-us" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en-us" class="no-js ie9"> <![endif]-->   
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1" >
  <meta charset="utf-8">
  ...

然后像这样使用CSS:

#discount_box { your normal style }
.ie8 #discount_box { additional style for IE8 }

(但请检查discount_box是否为班级或ID,因为您在示例中同时使用了两者)

请参阅Paul Irish的Conditional stylesheets vs CSS hacks? Answer: Neither!

答案 2 :(得分:2)

通过jquery检测浏览器版本,请参阅Jquery Browser

答案 3 :(得分:0)

if (typeof $.browser.msie == 'undefined') { ...

答案 4 :(得分:0)

$。在最新版本的jquery中不支持browser.msie你可以添加jquery-migrate-1.2.1.min.js或使用以下jquery函数...对于IE它也会给你版本... < / p>

调用currentBrowser()。浏览器来检测浏览器.........

function currentBrowser() {

$.returnVal = "";

var browserUserAgent = navigator.userAgent;

if (browserUserAgent.indexOf("Firefox") > -1) {

    $.returnVal = { browser: "Firefox" };
}

else if (browserUserAgent.indexOf("Chrome") > -1) {

    $.returnVal = { browser: "Chrome" };
}

else if (browserUserAgent.indexOf("Safari") > -1) {

    $.returnVal = { browser: "Safari" };
}

else if (browserUserAgent.indexOf("MSIE") > -1) {

    var splitUserAgent = browserUserAgent.split(";");

    for (var val in splitUserAgent) {

        if (splitUserAgent[val].match("MSIE")) {

            var IEVersion = parseInt(splitUserAgent[val].substr(5, splitUserAgent[val].length));
        }
    }

    $.returnVal = { browser: "IE", version: IEVersion };
}

else if (browserUserAgent.indexOf("Opera") > -1) {

    $.returnVal = { browser: "Opera" };
}

else {
    $.returnVal =
     { browser: "other" };
}

return $.returnVal;
}