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";
}
Другие вопросы по тегам