在TWebBrowser中取得Frame对像

上一篇 / 下一篇  2008-04-20 22:03:18 / 个人分类:Delphi程序设计

在Delphi中取得Frame和IFrame对像的方法:ITPUB个人空间 w so"| w,z&t
下面两种方法好像都不能取得不属于同一个域下框架,暂时还不知道该如何解决这个问题。ITPUB个人空间v;fW0sq|we[
ITPUB个人空间az|+z_
一、使用QueryInterfaceITPUB个人空间6|J b"^!p yfB
function GetFrame(Doc: IHTMLDocument2;ITPUB个人空间C+u%\*ql-\
  Index: OleVariant): IHTMLDocument2;ITPUB个人空间s2H3F L ]%c[@J,U
varITPUB个人空间C {C o/Jt3j k
  OleWin: OleVariant;ITPUB个人空间(sQ}2mzn
  FrameWin: IHTMLWindow2;
v-^6u;j[+N!y0begin
$TM-Wz0A.]o0  if (Doc.frames.length <= Index) thenITPUB个人空间 Z2g s:F:_d{
    Result := nilITPUB个人空间)x)F$\0[5{0F Q/T
  else begin
FGEYo@f!W'y0    OleWin := Doc.Frames.Item(Index);
Sk0YCl,T:[Wa0    IUnknown(OleWin).QueryInterface(IID_IHTMLWindow2, FrameWin);ITPUB个人空间g Q{x#^mRg?
    Result := FrameWin.Document;
s}?3R7Q4jT5U0  end;ITPUB个人空间\EO`6ui
end;ITPUB个人空间&AO3g oV#| B(VV

2G8A1S n["Y,Ht0|,{[0二、使用IOleContainerITPUB个人空间fI$P@vS?6H,d
function GetFrame(Doc: IHTMLDocument2;ITPUB个人空间cHLFw:` r
  Index: OleVariant): IHTMLDocument2;ITPUB个人空间jd}#z;c(XS V
varITPUB个人空间3|z6{!R3D,?
  OleContainer: IOleContainer;
5B5WyG.^Q;|0  Enum: IEnumUnknown;
1W zuL:\QB1G'~+y?3_0  Unk: IUnknown;
Q^} k%Bg1pI0  Fetched: PLongint;
K$VZ7W T]%k0beginITPUB个人空间$Nvw0m } T$c(J
  Doc.domain := '163.com';ITPUB个人空间\IE)W8Neh
  Fetched :=  nil;ITPUB个人空间 M&qu*G9Ug.Sq3Zl
  OleContainer := wb.Document as IOleContainer;
n`8F3q yHYw0  OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
PXRT&Wm0  Enum.Skip(Index);
IMi~.\N0c.t.G:Z0  Enum.Next(1, Unk, Fetched);
MeQK J:h9w_0  Result := (Unk as IWebbrowser2).Document as IHTMLDocument2;ITPUB个人空间.} [y0ZiSW
end;
L L%c9I9f7L0ITPUB个人空间'K$q y)L9oer

)]*oxH+[0

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-07-25  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 1177
  • 日志数: 23
  • 建立时间: 2008-01-17
  • 更新时间: 2008-07-03

RSS订阅

Open Toolbar