2011-10-17 25 views
6

我有一個頁面上的ActiveX ...我知道... ActiveX ... blarghhh!好老的重疊菜單,如何z索引activeX

,對於一些業務邏輯的原因,我們不得不去使用ActiveX,但問題是,我不能讓該ActiveX <object>是別的之下......

這是非常奇怪的!

Live plain exampleLive example with iframe wrapper

你可以嘗試的例子,但請記住,在Internet Explorer中的ActiveX唯一的工作,不管是什麼版本的ActiveX,它將始終運行。

這個問題,我面對的是重疊之一:

enter image description here

positionz-index玩什麼都不做,我沒有更多的想法:-(

回答

3

ActiveX控件呈現作爲「windowed」元素在Internet Explorer中,而大多數其他元素(特別是在較新版本的IE)是「無窗」。 Flash有一個wmode選項,用於繪製無窗還是窗口,但根據我的經驗,這非常難以實現,特別是如果對象是用.NET編寫的而不是C++編寫的。

儘管有容器的願望,但所有窗口元素都將自己繪製在所有無窗口的 元素之上。然而,窗口化的 元素確實遵循關於彼此的z-index屬性, ,正如無窗口元素相互遵循z-index屬性相對於 一樣。

所有無窗口元素都在同一個MSHTML平面上呈現,並且窗口元素在單獨的MSHTML平面上繪製。您可以使用z索引 來操縱同一平面上的元素,但不能與不同平面中的 元素進行混合和匹配。您可以重新排列每個平面上的 元素的z索引,但窗口化平面始終繪製在無窗平面的頂部 上。

>http://support.microsoft.com/kb/177378

有我能想到的兩種可能的解決方案。你可以試試iframe "cutout" solution,這說明你可以使用iframe來「切掉」下面的HTML插件的一部分來展示。

第二種解決方案是在a popup object中繪製彈出菜單。這些窗口是在您的網頁前呈現的獨立窗口,甚至可能超出文檔—的邊界,但有一些限制—主要的缺點是它們沒有陰影,因此這可能會略微影響您的樣式。

+1

因爲它是一個CRM應用程序,我不能對下拉對象做任何事情,但是,我可以對ActiveX主頁進行操作,而且我用'