Javascript IE 6选择菜单上的控件(组合框)

Javascript IE 6选择菜单上的控件(组合框),javascript,xhtml,internet-explorer-6,Javascript,Xhtml,Internet Explorer 6,在IE6中,选择控件(组合框)显示在菜单顶部。我检查了一些Javascript菜单,但都在select控制下。它不能通过指定Z索引来修复。是否有其他解决方案。问题在于SELECT是IE6中的“窗口化”元素,其z索引高于所有其他非“窗口化”组件。如果您绝对必须在combox上有某些内容,那么您可能希望将其放在另一个窗口组件(如IFRAME)中,并将组件的z索引设置为高于combobox的z索引 我必须承认,这不是一个很好的解决方案。这是IE6的一个众所周知的错误,它试图将div绝对定位在selec

在IE6中,选择控件(组合框)显示在菜单顶部。我检查了一些Javascript菜单,但都在select控制下。它不能通过指定Z索引来修复。是否有其他解决方案。

问题在于SELECT是IE6中的“窗口化”元素,其z索引高于所有其他非“窗口化”组件。如果您绝对必须在combox上有某些内容,那么您可能希望将其放在另一个窗口组件(如IFRAME)中,并将组件的z索引设置为高于combobox的z索引


我必须承认,这不是一个很好的解决方案。

这是IE6的一个众所周知的错误,它试图将div绝对定位在select控件之上

有一些变通方法涉及iframe垫片,但没有很好的答案。iframe垫片的答案是将iframe放置在您试图放置在select之上的任何div之下,iframe的大小相同。不幸的是,这是一个巨大的痛苦的屁股


我建议使用已经使用iframe的javascript菜单系统,比如(我假设是jQuery)。

大多数主要javascript库都有容易实现的解决方案。我们使用jQuery,它非常易于使用并解决了问题。

绝对正确。这是一个丑陋的问题

然而,可能还有另一种解决办法。如果您使用的是弹出打开和关闭的多层菜单,则可以编写JavaScript代码,在打开弹出窗口时隐藏有问题的SELECT元素(将元素设置为具有隐藏的可见性)。然后,当菜单关闭时,您可以取消隐藏相同的选择控件


然后,您只需编写代码,在特定菜单打开之前检测哪些选定对象妨碍了它。这不是一段微不足道的代码,但绝对可以编写。然后我将整个代码块包装在一个条件中,检查用户是否在IE上,因为不需要在Firefox或Safari上运行它。

@jonstjohn-太棒了!使用bgiframe插件的唯一剩余问题是,我得到的DIV的边界仍然被下拉列表覆盖。因此DIV的主要部分显示在下拉列表的顶部,但是黑色边框(CSS-border:2px solid#cececece;)仍然显示在下拉列表的下面。你碰到过这个吗?哦,没关系。我RTFM看到“顶部”、“左侧”等偏移量。看起来像“顶部”、“左侧”等。什么也不做。