现在WebBrowser1中显示的是BAIDU页面,然后我点了下其中某个网页 居然浏览器弹出来显示了 ,我想让所有的网页都显示在WebBrowser1中

解决方案 »

  1.   

    百度搜索结果的超链接是新开窗口的方式,这个不好强制要求除非你偷梁换柱,获取点击的链接(某一搜索结果)的url,然后手动替换webBrowser的地址只是个思路,没有试验过。
      

  2.   


    //网上找的思路:放一个WebBrowser2,隐藏
    //不一定好用procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    begin
      ppDisp := Self.WebBrowser2.OleObject;
    end;procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    begin
      Cancel := True;
      Self.WebBrowser1.Navigate(URL);
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
      Self.WebBrowser1.Navigate('http://www.baidu.com');
      Self.WebBrowser2.Width := 0;
      Self.WebBrowser2.Height:= 0;
    end;
      

  3.   

    晕 没有办法吗? 新窗口在 WebBrowser1中显示不行吗?
      

  4.   


    虽然不敢说3楼的代码是最好的方法,但它却 的确 是 在WebBrowser1中打开新链接