? ? ? ?最近做個(gè)web項(xiàng)目,因?yàn)槔锩嬗袀€(gè)object的插件,彈出對(duì)話框會(huì)被其遮蓋,我做了個(gè)iframe標(biāo)簽,在彈框時(shí),把object覆蓋掉,再在iframe上放個(gè)div對(duì)話框。這是這個(gè)問題的解決思路。終于將這個(gè)問題解決掉了,我將思路分享給大家以供參考。
(一)首先給大家介紹一下object標(biāo)簽:W3school有解釋
定義和用法
定義一個(gè)嵌入的對(duì)象。請(qǐng)使用此元素向您的XHTML頁面添加多媒體。此元素允許您規(guī)定插入HTML文檔中的對(duì)象的數(shù)據(jù)和參數(shù),以及可用來顯示和操作數(shù)據(jù)的代碼。
object標(biāo)簽用于包含對(duì)象,比如圖像、音頻、視頻、Java applets、ActiveX、PDF以及Flash。
object的初衷是取代img和applet元素。不過由于漏洞以及缺乏瀏覽器支持,這一點(diǎn)并未實(shí)現(xiàn)。
瀏覽器的對(duì)象支持有賴于對(duì)象類型。不幸的是,主流瀏覽器都使用不同的代碼來加載相同的對(duì)象類型。
而幸運(yùn)的是,object對(duì)象提供了解決方案。如果未顯示object元素,就會(huì)執(zhí)行位于object之間的代碼。通過這種方式,我們能夠嵌套多個(gè)object元素(每個(gè)對(duì)應(yīng)一個(gè)瀏覽器)。
總的來說object標(biāo)簽就是用來嵌入多媒體的。
(二)簡單介紹幾個(gè)object標(biāo)簽的重要屬性:
classid --關(guān)聯(lián)一個(gè)應(yīng)用程序,執(zhí)行嵌入內(nèi)容的應(yīng)用程序在windows系統(tǒng)中的唯一id(不能改變此id,否則程序?qū)⒊霈F(xiàn)異常),例如clsid:D27CDB6E-AE6D-11cf-96B8-444553540000-- Flash
data --規(guī)定對(duì)象使用的資源的URL。
(三)object標(biāo)簽在IE上覆蓋問題
查詢相關(guān)資源后發(fā)現(xiàn)在IE中是一個(gè)windowed?element,即窗口元素,這些元素總是會(huì)被渲染在非窗口元素的上方,唯一的解決方案就是使用iframe作為中間物,即用iframe覆蓋object,再用div覆蓋iframe。

注意:
1.div必須有特定的z-index且大于iframe的z-index,不能是auto或空;
2.iframe的z-index必須為負(fù)(之前一直設(shè)置為正值,雖然小于div的z-index,但一直不能被div遮蓋),否則,div無法遮蓋iframe;
3.iframe的top和left為0,且iframe的寬、高與div的寬高相等;
4.注意設(shè)置iframe的透明度為0.
5.如果頁面有多處彈出框,可以使用js動(dòng)態(tài)添加iframe。