在 Internet Explorer 中,我有一个 jquery 组合框,它在嵌入对象(例如 pdf 文档)后面打开。如何确保组合框始终位于嵌入对象的前面?
请参阅此小提琴的示例:http://jsfiddle.net/RDd3A/258/(更新的小提琴包含我解决它的尝试)
HTML:
<select id="combobox">
<option value="">Select one...</option>
<option value="23">Really long stuff that might wrap</option>
<option value="25">Normal Stuff</option>
</select>
<br/>
<embed src="https://www.xs4all.nl/media/transparantie/Transparantierapport-2012.pdf"/>
JavaScript:
$("#combobox").combobox();
(我已经删除了所有CSS)
我已经尝试过以下操作:
- 使用 wmode="transparant" 作为属性
- 在 url 中使用 ?wmode=transparent
- 使用 iframe
- 使用 z 索引
不幸的是,这没有帮助,组合框仍然位于嵌入文档后面。任何人?
这是一个众所周知的IE问题,我前段时间做了一次调查,我知道的唯一方法已经被 @Gyum Fox 提到了 - 另一个“面具”iframe
。但是,您不必在元素“之间”放置 iframe - 您可以放置绝对定位iframe
在相应的元素内100% height and width。
要放置在元素内部的 iframe 的 CSS:
iframe.ie-fix {
position: absolute;
border: none;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: -1;
}
问题在于jQuery动态构造菜单内容,因此我们需要处理一些事件来插入掩码。这个简单的代码向页面上的所有菜单添加掩码。虽然不是完整的解决方案,但显示了方法:
$('.ui-button').click(function() {
$('.ui-menu').append("<iframe class='ie-fix' src='about:blank'></iframe>" );
});
理想情况下,我们只需要更新相应的菜单,但我需要更深入地挖掘 jQuery 的源代码才能实现这一点,稍后将尝试解决。
JSFiddle有完整的例子
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)