2010-08-04 116 views
0

在页面中有一个activex控件以及一个按钮,它的onclick打开一个ajax模式弹出窗口。我面临的问题是,无论何时点击按钮,ajax弹出窗口都会加载到activex控件的后面,因此它被隐藏了。所以我根本无法使用该控件。 我还没有找到适当的解决方案。我尝试了一个解决方案,从ajaxtoolkit代码中删除浏览器检查条件。但没有运气。我使用Ajax工具包版本3.0.30512.1.let我知道是否有任何解决方案来解决这个问题。Ajax模式弹出式加载在activex控件后面

回答

0

我不知道,但我认为这个问题是ActiveX,它总是在最上面显示。

你可以尝试隐藏的ActiveX显示弹出时:

document.getElementById('activex').style.visibility = 'hidden'; 

,然后当您关闭弹出窗口再次显示该ActiveX:

document.getElementById('activex').style.visibility = 'visible'; 
+0

让我试试这个选项 – Aravind 2010-08-09 03:58:06

+0

如果这不起作用,请尝试将宽度和高度设置为1;一些ActiveX控件可能会出现奇怪的行为,如果你让它们实际上不可见,因为浏览器可能会停用控件。 Lenciel的回答完全是这里发生的 - 我自己无法更好地解释它。 – taxilian 2011-09-30 04:03:34

+0

已经很长时间了,因为我发布了这个问题,并且很惊讶地看到现在的评论。 :) 我们实际上改变了页面流量,使这个activex成为页面上的单个控件。在那个时候这是一个快速修复的网站交付。 – Aravind 2011-09-30 09:09:13

1

的任何努力,使一个DIV或任何ActiveX顶部的HTML元素不起作用。即使它具有比HTML元素更高的z索引,ActiveX始终保持在最前面。原因是资源管理器呈现其内容的方式。见

http://support.microsoft.com/default.aspx?scid=kb;en-us;177378

有两种类型的控件:Windowed和Windowless元素,它们在不同的平面上呈现。尽管有容器的愿望,但所有窗户元素都将自己绘制在所有无窗户元素的顶部。然而,窗口元素确实遵循z-index属性相对于彼此,就像无窗口元素相对于彼此遵循z-index属性一样。

所有无窗口元素都在同一个MSHTML平面上呈现,窗口元素在单独的MSHTML平面上绘制。您可以使用z-index来操纵同一平面上的元素,但不能混合和匹配不同平面中的元素。您可以重新排列每个平面上的元素的z索引,但窗口化的平面总是绘制在无窗平面的顶部。

该标签在大多数情况下是窗口化的。这就是为什么它总是处于顶峰。

+0

这个答案是绝对正确的; FireBreath支持创建无窗口的ActiveX控件,但这很痛苦,大多数控件都不支持它,因为控件没有自己的HWND。 – taxilian 2011-09-30 04:02:30