Javascript:根据是否IE7进行更改

时间:2010-05-26 19:48:39

标签: javascript internet-explorer internet-explorer-7 conditional-compilation

我想根据浏览器是否为IE7更改我的javascript代码行。以下是任何其他浏览器的代码:

function showHint(myId) 
{
    document.getElementById(myId).style.display = "inline-block";
}

对于IE7,我想要display =“inline”。

我尝试了条件编译(this向我展示了如何检测浏览器),但它不起作用:

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 个答案:

答案 0 :(得分:7)

设置由IE的 conditional comment解析行为决定的全局:

<!--[if IE 7]><script> var isIE7 = true; </script><![endif]-->

答案 1 :(得分:2)

您需要检查navigator.userAgent

如果你使用jQuery,你可以简单地写

if ($.browser.msie && $.browser.version === 7)

答案 2 :(得分:1)

我认为您可以使用正则表达式来确定MSIE 7:

if(/MSIE 7/.test(navigator.appVersion)) { /* msie7 related code */ }

答案 3 :(得分:0)

有一个Jquery插件检测浏览器版本。我不知道确切的链接...

答案 4 :(得分:0)

条件编译应该有效。您的错误似乎是您正在使用花哨的引号来分隔字符串(“MSIE 7.”),或者您正在尝试将显示分配给IE未知的内容,并且它正在适应它并抛出错误。这是一个更简洁的函数版本,它不会重复并解决这个问题:

function showHint(myId) 
{
    document.getElementById(myId).style.display = "inline" //@cc_on;
    + "-block";
}