显示/隐藏不在IE中工作的JavaScript,仅在Firefox中
这是我在网上找到的显示/隐藏脚本。当您点击“查看菜单”图像时,它应该显示每个部分的隐藏显示/隐藏不在IE中工作的JavaScript,仅在Firefox中,javascript,html,css,Javascript,Html,Css,这是我在网上找到的显示/隐藏脚本。当您点击“查看菜单”图像时,它应该显示每个部分的隐藏div。出于某种原因,我没有让它在Internet Explorer上显示/扩展,但它在Firefox中运行良好。 函数取消隐藏(divID){ var item=document.getElementById(divID); 如果(项目){ item.className=(item.className='hidden')?'unhidden':'hidden'; } } 这是CSS部分 .hidden
div
。出于某种原因,我没有让它在Internet Explorer上显示/扩展,但它在Firefox中运行良好。
函数取消隐藏(divID){
var item=document.getElementById(divID);
如果(项目){
item.className=(item.className='hidden')?'unhidden':'hidden';
}
}
这是CSS部分
.hidden{显示:无;}
.unhidden{display:block;}
这就是部分中的代码
<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>
如果我能得到一点帮助,我会很高兴的。。。或者如果有别的办法。提前谢谢。您可以使用
而不是
Internet Explorer保留字已用作标识符(函数或变量名)
用另一个变量名更改项,并尝试一下
如果您想首先测试这是否是您的问题,下面是使用不同变量名的脚本
function unhide(divID) {
var MyItem = document.getElementById(divID);
if (MyItem) {
MyItem.className = (MyItem.className == 'hidden') ? 'unhidden' : 'hidden';
}
}
请注意,“内联javascript”出于安全原因倾向于禁用。因此,您应该考虑使用JavaScript库(如jQuery)对代码进行修改。这意味着,即使是像“onclick”这样的javascript事件也将变得过时。我建议您使用jQuery或其他javascript库来处理这一问题,因为它们都非常努力地维护跨浏览器兼容性。我会尝试直接更改样式属性:item.style.display=“block”;vs item.style.display=“无”;在我看来,这就像你的
javascript:unhide('cookiesmenu')
没有在IE中执行href。我建议你切换到事件处理程序,而不是javascript:
URL。我不知道这是IE中的一个问题,但是常规事件处理程序在IE中工作得很好,IE中unhide()
函数中的断点根本没有被命中。似乎奏效了。非常感谢大家,这是我第一次在网上发布一些东西,我被这些快速的回复吓坏了。@user3148129作为帮助:但是,这个函数在IE10中甚至没有调用。请尝试IE10中提供的JSFIDLE,然后回来告诉我发生了什么。另外,如果你能提供控制台错误日志,这将非常有帮助。我不是OP。我只是注意到在OP页面的IE中没有调用unhide函数(其中的断点未命中)。在IE10中,像OP一样使用名为item
的变量对我来说很好。所以,很明显,OP的页面上还发生了其他事情,这似乎没有改变任何事情。此外,弗里德的回答似乎解决了OP的问题。@jfriend00感谢您的确认。我现在不能自己测试,我会修改答案以获得建议。