首页 / 大硬盘VPS推荐 / 正文
Delphi TWebBrowser组件详解,delphi webbrowser 代替

Time:2024年12月04日 Read:8 评论:42 作者:y21dr45

简介

Delphi TWebBrowser组件详解,delphi webbrowser 代替

Delphi中的TWebBrowser组件是一个基于IE内核的浏览器控件,可以在应用程序中嵌入网页浏览功能,通过这个组件,开发人员可以方便地在应用程序中实现网页显示、导航以及与网页进行交互等操作,本文将详细介绍TWebBrowser组件的基本属性、常用方法和实际应用案例。

TWebBrowser组件基本属性

Application

该属性用于返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch),如果宿主对象中自动化对象无效,程序将返回WebBrowser控件的自动化对象。

Parent

返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口。

Container

返回WebBrowser控件容器的自动化对象,通常该值与Parent属性返回的值相同。

Document

为活动的文档返回自动化对象,如果HTML当前正被显示在WebBrowser中,则Document属性提供对DHTML Object Model的访问途径。

TopLevelContainer

返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true。

Type

返回已被WebBrowser控件加载的对象的类型,如果加载.doc文件,就会返回Microsoft Word Document。

Left, Top, Width, Height

这些属性用于设置或获取WebBrowser控件的位置和大小。

LocationName, LocationURL

LocationName返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称,LocationURL返回WebBrowser当前正在显示的资源的URL。

Busy

返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作。

常用方法

- GoBack: 相当于IE的”后退”按钮,使你在当前历史列表中后退一项。

- GoForward: 相当于IE的”前进”按钮,使你在当前历史列表中前进一项。

- GoHome: 相当于IE的”主页”按钮,连接用户默认的主页。

- GoSearch: 相当于IE的”搜索”按钮,连接用户默认的搜索页面。

- Navigate: 连接到指定的URL。

- Refresh: 刷新当前页面。

- Stop: 停止当前的加载操作。

- Refresh2: 同上,只是可以指定刷新级别。

- Navigate2: 导航完成后激发,刷新时不激发。

- NewWindow2: 在创建新窗口以前激发。

- OnFullScreen: 当FullScreen属性改变时激发,该事件采用VARIENT_BOOL的一个输入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)。

- OnMenuBar: 改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的,VARIENT_TRUE是可见,VARIENT_FALSE是隐藏。

- OnQuit: 无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发。

- OnStatusBar: 与OnMenuBar调用方法相同,标示状态栏是否可见。

- OnToolBar: 调用方法同上,标示工具栏是否可见。

- OnVisible: 控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数。

- StatusTextChange: 如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏。

- TitleChange: 网页标题有效或改变时激发。

应用案例

自动填表

可以通过TWebBrowser控件模拟用户在网页上的操作,如自动填写表单并提交,以下是一个简化的示例代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  user, password: OleVariant;
begin
  WebBrowser1.Navigate('https://example.com/login');
  while WebBrowser1.Busy do
    Sleep(100); // 等待页面加载完成
  
  user := WebBrowser1.Document.GetElementById('username');
  password := WebBrowser1.Document.GetElementById('password');
  user.Value := 'myname';
  password.Value := '123456';
  
  WebBrowser1.Document.GetElementById('submit').Click();
end;

数据采集

TWebBrowser控件可以用来采集网页数据,例如抓取网页上的文本或图片链接,以下是一个示例代码:

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  link: OleVariant;
begin
  WebBrowser1.Navigate('https://example.com');
  while WebBrowser1.Busy do
    Sleep(100); // 等待页面加载完成
  
  for i := 0 to WebBrowser1.Document.Links.Length - 1 do
  begin
    link := WebBrowser1.Document.Links.Item(i);
    ShowMessage(link.Href); // 显示每个链接的地址
  end;
end;

调用网页脚本函数

TWebBrowser控件还可以调用网页中的JavaScript函数,以下是一个示例代码:

procedure TForm1.Button3Click(Sender: TObject);
begin
  WebBrowser1.Navigate('https://example.com');
  while WebBrowser1.Busy do
    Sleep(100); // 等待页面加载完成
  
  WebBrowser1.Document.parentWindow.execScript('alert("Hello from Delphi!", "JavaScript");', 'JavaScript');
end;

TWebBrowser组件是Delphi开发中的一个强大工具,它使得在桌面应用程序中集成网页浏览功能变得简单而高效,通过掌握其基本属性和方法,结合实际应用案例,开发人员可以实现复杂的网页交互和自动化任务,希望本文能帮助读者更好地理解和使用Delphi中的TWebBrowser组件。

标签: delphi webbrowser 
排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1