现在想写一个程序,用于提取网页中所有的链接,于是写了一个函数用于提取,刚开始还可以,可是这个函数工作长了不知道网页中是不是有某些特殊的或者我没想到的代码会导致程序崩溃或者进入死循环,我检查了代码,无奈怎么都找不到错误,后来上网看到有一种用WebBrowser控件加载网页可以提取的方法后试了一下,结果还是不理想。主要是程序根本无法执行。 var
       doc:IHTMLDocument2;
       all:IHTMLElementCollection;
       len,i:integer;
       item:OleVariant;
      begin
       webbrowser1.Navigate('www.baidu.com');
     doc:=WebBrowser1 .Document as IHTMLDocument2;
       all:=doc.Get_links;             //doc.Links亦可
       len:=all.length;
       for i:=0 to len-1 do begin
        item:=all.item(i,varempty);        //EmpryParam亦可
        memo1.lines.add(item.href);
       end;
      end;这个是网上找来的,很多地方都有。只要一执行就会报错,停在doc:=WebBrowser1 .Document as IHTMLDocument2;这一行,不知道是什么原因。谁可以给一段可以用的代码?

解决方案 »

  1.   

    你这个代码是写在什么地方的,如果:=WebBrowser1 .Document 未加载完成的话,就会出错
      

  2.   

    代码没问题,就是要点击是,确保WebBrowser1 .Document 已完全加载
      

  3.   

    好像真的是这个问题,我把webbrowser1.Navigate('www.baidu.com');和后面的代码放在不同的按钮处就可以正常执行了。谢谢啦,顺便问个问题,怎么判断他完全加载呢?谢啦。分全给你啦。