显示/隐藏JavaScript无法在IE中运行,仅在Firefox中运行

时间:2013-12-31 03:13:20

标签: javascript html css

这是我在网上找到的显示/隐藏脚本。当您单击“视图菜单”图像时,它应该为每个部分显示隐藏的div。我不是出于某种原因在Internet Explorer上显示/扩展它,但它在Firefox中运行良好 http://www.abatchoflove.com

<script type="text/javascript">
    function unhide(divID) {
        var item = document.getElementById(divID);
        if (item) {
            item.className = (item.className == 'hidden') ?'unhidden':'hidden';
        }
    }
</script>

这是CSS部分。

<style type="text/css">
    .hidden { display: none; }
    .unhidden { display: block; }
</style>

这是代码在各部分中的样子。

<td valign="top" bgcolor="#51BEB7">
    <a href="javascript:unhide('cookiesmenu');">
        <img src="images/cookies_nav.gif" border="0" usemap="#Map2">
    </a>
    <div id="cookiesmenu" class="hidden">
        <img src="images/cookies_menu.gif">
    </div>
</td>


如果我能得到一些帮助,我会喜欢它吗?或者如果还有其他方法可以解决这个问题。提前谢谢。

2 个答案:

答案 0 :(得分:2)

你可以使用

<a onclick="unhide('cookiesmenu')">

而不是

<a href="javascript:unhide('cookiesmenu');">

答案 1 :(得分:0)

Internet Explorer保留字已被用作标识符(函数或变量名)。

通过其他变量名更改并试一试。

http://www.ecma-international.org/ecma-262/5.1/#sec-7.6.1.1

http://www.springenwerk.com/2009/01/is-reserved-word-in-internet-explorer-6.html

IE Issue with jquery and JS

如果您想先测试这是否是您的问题,这里是您的脚本,其中包含不同的变量名称。

function unhide(divID) {
    var MyItem = document.getElementById(divID);
    if (MyItem) {
        MyItem.className = (MyItem.className == 'hidden') ? 'unhidden' : 'hidden';
    }
}

http://jsfiddle.net/GvKLX/1/

请注意,出于安全原因,“内联javascript”趋于消失。所以你应该考虑使用jQuery库来改造你的代码。意思是,即使像'onclick'这样的javascript事件也会过时。