2010-08-04 50 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