嵌入对象后面的jquery组合框(仅限IE)
jquery combobox behind embedded object (IE only)
在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="transplant"作为属性
- 使用?wmode=url中的transplant
- 使用iframe
- 使用z索引
不幸的是,这没有帮助,组合框仍然位于嵌入文档后面。任何人
这是一个已知的IE问题,我前段时间做了一项调查,我知道的唯一方法已经被@Gyum Fox提到了——另一个"面具"iframe
。然而,你不必把一个iframe"介于";元素-您可以将绝对定位的iframe
放在100%高度和宽度的相应元素内。要放置在元素内部的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的源代码来实现这一点,稍后将尝试解决。
JS Fiddle与完整的示例
这是一个IE问题。我在JQueryUI中的模式对话框中使用组合框时也遇到了类似的问题。组合框在Chrome或Firefox中运行良好。我发现解决该问题的唯一方法是将其放置在iframe
中。我在模态对话框中为我工作。
IE和JQuery似乎配合得很好,只要你不做任何太花哨的事情。我还尝试在模式对话框中放置一个s选择框,但也不起作用。当必须嵌套两个JQueryUI元素时,我避免使用它们。
既然udalmik首先回答了,那么您应该使用他的实现。
- 仅在IE中,javascript中的时区名称不正确
- jquery仅限<并且>文本框中的符号
- Javascript/Css导航未显示在jquery文档上,仅在ie中准备就绪
- 仅限滑动图像css3或需要javascript
- 仅限客户端的Dropbox访问
- 仅在 IE 中使用 jQuery 发布数据时出现错误请求错误
- Angular JS错误:仅在IE 10和IE 11中出现[$rootScope:infdig]
- 跨来源图像加载被拒绝-仅限iPhone-简单图像上传
- 仅限Chrome:ajax冻结了我的JavaScript执行
- jQuery show/fadeIn不将display:block应用于隐藏的父元素内的子元素-仅限FireFox
- 仅限顶级列表项
- zip.js读取zip中的文件名.(仅限客户端脚本)
- 仅限 Firefox/IE - 元素 show() jquery 后冻结的 gif 动画
- Javascript 函数在 IE(仅限)版本 9 - 10 上不起作用
- 脚本 600:此操作的目标元素无效.(仅限 IE)
- PHP 填充下拉列表与 ajax onchange 问题 IE 仅限
- 强制仅限数字的js函数不'不适用于Firefox,但适用于Chrome;IE运行良好
- 嵌入对象后面的jquery组合框(仅限IE)
- 仅限IE浏览器
- 远程过程调用失败"-仅限IE