Javascript 嵌入对象后面的jquery组合框(仅限IE)

Javascript 嵌入对象后面的jquery组合框(仅限IE),javascript,jquery,html,internet-explorer,combobox,Javascript,Jquery,Html,Internet Explorer,Combobox,在InternetExplorer中,我有一个jquery组合框,它在嵌入对象(例如pdf文档)后面打开。如何确保组合框始终位于嵌入对象的前面 查看此提琴以获取示例:(更新的提琴,包含我解决此问题的尝试) HTML: (我已经剥离了所有css) 我已经尝试了以下方法: 使用wmode=“transparant”作为属性 在url中使用?wmode=transparant 使用iframe 使用z索引 不幸的是,这没有帮助,combobox仍然位于嵌入文档的后面。有人吗?这是一个众所周知的问题

在InternetExplorer中,我有一个jquery组合框,它在嵌入对象(例如pdf文档)后面打开。如何确保组合框始终位于嵌入对象的前面

查看此提琴以获取示例:(更新的提琴,包含我解决此问题的尝试)

HTML:

(我已经剥离了所有css)

我已经尝试了以下方法:

  • 使用wmode=“transparant”作为属性
  • 在url中使用?wmode=transparant
  • 使用iframe
  • 使用z索引

不幸的是,这没有帮助,combobox仍然位于嵌入文档的后面。有人吗?

这是一个众所周知的问题,我前段时间做了一项调查,我知道的唯一方法是@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>" ); 
});
   
$('.ui按钮')。单击(函数(){
$('.ui菜单')。追加(“”);
});
理想情况下,我们只需要更新相应的菜单,但我需要深入挖掘jQuery的源代码来实现这一点,稍后将尝试解决这个问题


有完整的示例

这是一个IE问题。我在jQueryUI的模式对话框中使用组合框时遇到了类似的问题。combobox在Chrome或Firefox中运行良好。我发现解决该问题的唯一方法是将其放在
iframe
中。我在模态对话框中为我工作

IE和JQuery似乎配合得很好,只要你不做太花哨的事情。我还试着在一个模态对话框中放置一个s选择框,但它也不起作用。我避免在必须嵌套时使用两个JQuery UI元素


既然乌达尔米克先回答了,你应该使用他的实现。

你的问题到底是什么?是否希望组合框显示在嵌入对象的上方?是的,组合框的选项在IE中不可见。我希望它们显示在嵌入对象的上方。尝试创建一个新的iframe,以便将其放在另一个iframe和UL元素之间。接下来的挑战是将该遮罩准确定位在UL下,并具有正确的宽度和高度。请参阅概念验证:。现在,您必须编写代码,动态创建和定位UL下的遮罩,并具有正确的宽度和高度。对于“combobox”插件的开发人员来说,这是一项更大的工作。如果您需要我的意见,欢迎使用此解决方案。yum,谢谢您,它工作正常。(不幸的是,这是一个相当沉重的解决方案)。我将等待几天,看看是否有其他解决方案,否则我将奖励您(我认为您必须为此创建一个答案),可能您需要添加一些检查,看看
ui菜单中是否已经存在此
ie修复程序
,因为每次单击时该代码都会添加新的
iframe
iframe.ie-fix {
   position: absolute;
   border: none;
   top: 0;
   left: 0;
   height: 100%;
   width: 100%;
   z-index: -1;
} 
$('.ui-button').click(function() {
     $('.ui-menu').append("<iframe class='ie-fix' src='about:blank'></iframe>" ); 
});