2016-07-05 178 views
0

我在Delphi窗體上有EmbeddedWB組件,並將它用作webbrowser用於不同的頁面。Deplhi TEmbeddedWB檢查元素是否可見

有沒有辦法檢查,如果IHTMLelement顯示與否? 我知道ihtmlelement.style.display屬性,當它設置爲'none'時,則該元素不可見。 但是,如果其隱含的元素,元素的元素(等等)隱藏起來了,怎麼辦?

我可以檢查,如果它是可見的?

我的代碼 - 這不是正常工作

var 
document:ihtmldocument2; 
body:ihtmlelement2; 
i:integer; 
tag:ihtmlelement; 
tags:IHTMLElementCollection; 

... 

document:=embeddedwb.document as ihtmldocument2; 
body:=document.body as ihtmlelement2; 

if assigned(body) then begin 

    Tags := Body.getElementsByTagName('*'); 

    for i := 0 to Tags.length-1 do 
    begin 

    try 
    Tag := Tags.item(I, EmptyParam) as IHTMLElement; 
    except 
    tag:=nil; 
    end; 
    if tag.style.display<>'none' then begin 
// this condition is not good, because the tag.style.display is usually set to '' so it not telling me, if the tag is really visible or not... 
... 


... 

感謝建議

回答

1

確定我解決它......

添加變量tag2: IHTMLElement2;

tag2:=tag as ihtmlelement2; 

if tag2.currentstyle.display<>'none' then ... 

解決我的問題

+0

tag2是IHTMLElement2,標籤是ITHMLElement。,而ihtmlelement2具有屬性currentstyle,它顯示了元素的真實顯示狀態 – IanF