Javascript: изменение в зависимости от того, IE7 или нет
Я хотел бы изменить строку моего кода JavaScript в зависимости от того, является ли браузер IE7 или нет. Вот код для любого другого браузера:
function showHint(myId)
{
document.getElementById(myId).style.display = "inline-block";
}
Для IE7 я хочу display = "inline".
Я сделал попытку условной компиляции ( это показало мне, как определить браузер), но это не сработало:
function showHint(myId)
{
document.getElementById(myId).style.display = "inline-block";
/*@cc_on
@if(navigator.appVersion.indexOf(“MSIE 7.”)!=-1)
{
document.getElementById(myId).style.display = "inline";
}
@*/
}
Любая помощь очень ценится!
РЕДАКТИРОВАТЬ: я не использую JQuery.
5 ответов
Установите глобальный тип, определяемый поведением условного анализа комментариев IE:
<!--[if IE 7]><script> var isIE7 = true; </script><![endif]-->
Вам нужно проверить navigator.userAgent
,
Если вы используете JQuery, вы можете просто написать
if ($.browser.msie && $.browser.version === 7)
Я думаю, что вы можете использовать регулярное выражение для определения MSIE 7:
if(/MSIE 7/.test(navigator.appVersion)) { /* msie7 related code */ }
Существует плагин Jquery, определяющий версию браузера. Я не знаю точную ссылку...
Условная компиляция должна работать. Кажется, что ваша ошибка в том, что вы используете причудливые кавычки для разделения строки (“MSIE 7.”
) или что вы пытаетесь назначить отображение чему-то неизвестному IE, и оно подходит к нему и выдает ошибку. Вот более краткая версия функции, которая не повторяется и решает эту проблему:
function showHint(myId)
{
document.getElementById(myId).style.display = "inline" //@cc_on;
+ "-block";
}