采集一个网页 需采集网页框架里面的内容,现在问题来了,我遍历iFrame出来的个数,是三个,我只采集第一 个和 第二个。现在问题来了。
下标开始,应该是 0 1 2  对吧,我采集的是,前面两个。但是奇怪的问题出来了。
有时候是这样。GetFrame(Document,0,web);就可以成功采集第一个框架的内容,但是有时候这个框架是空的,就必须
 GetFrame(Document,1,web);  就是,第一个位置变成了 1,  反正一会0可以,一会1 可以。我就觉得奇怪了啊,有框架,GetFrame(Document,0,web); 失败,返回不了,必须是1. 函数在下面
 function GetFrame(Document: IDispatch; FrameNo: Integer;var IDoc3:IWebBrowser2):Boolean;
var
  OleContainer: IOleContainer;
  enum: ActiveX.IEnumUnknown;
  unk: IUnknown;
  Fetched: PLongint;
begin
  Result:=False;
  try
    if Assigned(Document) then
    begin
      Fetched := nil;
      OleContainer := Document as IOleContainer;
      if OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum) = S_OK then
      begin
        Enum.Skip(FrameNo);
        Enum.Next(1, Unk, Fetched);
        IDoc3 := Unk as IWebBrowser2;
        Result:=True;
      end
      else
        IDoc3 := nil;
    end
    else
      IDoc3 := nil;
  except
    Result:=False;
  end;