Обнаружение браузера Jquery для IE8 - PullRequest
0 голосов
/ 28 февраля 2011

Я хочу сделать абсолютную позицию для всех других браузеров, кроме IE в jquery. У меня есть следующий код.

<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 ]

5 голосов
/ 28 февраля 2011

2 вещи ...

  1. браузер устарел - вместо него рекомендуется использовать функцию обнаружения.

  2. Абсолютное позиционирование хорошо в IE (даже 6), если вы используете строгий тип документа - и любые исправления могут быть сделаны в специфических таблицах IE, включенных в условные комментарии.

3 голосов
/ 28 февраля 2011

Вы уверены, что то, что вы пытаетесь сделать, правильно в каждой прошлой, настоящей и будущей версии 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, потому что вы используете оба в своем примере)

См .: Условные таблицы стилей против хаков CSS?Ответ: Ни один! от Пола Айриша.

2 голосов
/ 28 февраля 2011

для определения версий браузера с помощью jquery см. Jquery Browser

0 голосов
/ 16 июня 2013

$. Browser.msie не поддерживается в последней версии jquery, вы можете либо добавить jquery-migrate-1.2.1.min.js, либо использовать следующую функцию jquery ... для IE это также дает вам версию ...

вызовите 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;
}
0 голосов
/ 28 февраля 2011
if (typeof $.browser.msie == 'undefined') { ...
...