правильный синтаксис браузера, сниффинг (createElement) <ie9 - PullRequest
0 голосов
/ 18 октября 2011

Исходный код:

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && parseInt($.browser.version, 10)<7)

Отредактировано - извините, отправил неправильный код.

Как правильно сформировать вышесказанное, чтобы идентифицировать браузеры меньше чем ie9?

спасибо

Редактировать -

Вот причина кода выше:

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 ) {
                    hidden = document.createElement('<input type="hidden" name="' + atName + '" value="' + attrId + '"/>');
                } else {
                    hidden = document.createElement("input");

это для проблемы createElement ниже чем IE9

Кроме того, я хотел бы переписать всю функцию, но из-за области действия я не могу переписать файл, пока он не будет включен в проект - поэтому мне нужно переписать эту одну строку для правильной работы.

1 Ответ

1 голос
/ 18 октября 2011

AND не является допустимым ключевым словом javascript.VERSION ни один из них, кажется, нигде не объявлен.Также я бы порекомендовал вам никогда не проверять определенный навигатор или версию, а проверять, поддерживает ли браузер ту функциональность, которую вы хотите использовать.Техника под названием функция обнаружения .Так, например, если вы хотите использовать элемент HTML5 canvas, не проверяйте, является ли браузер XXX и версия YYY.Проверьте, поддерживает ли браузер HTML-элемент canvas. Modernizr - отличная библиотека для этой работы.


ОБНОВЛЕНИЕ:

И если вы не хотите слышать о хороших практиках и все еще настаиваете на этом браузереобнаружение версии:

if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
    alert('Warning, you are running a crap of a browser. Please upgrade!');
}
...