var   Form   :     IHTMLFormElement     ;D:IHTMLDocument2     ;
beginwith   WebBrowser1   do   beginD   :=   Document   as   IHTMLDocument2;Form   :=   D.Forms.item( 'form1 ',0)   as   IHTMLFormElement;   //form1为表单名//title为表单中的文本框(form.item( 'title ',0)   as   IHTMLElement).setAttribute( 'value ',s_title,0);  (form.item( 'content ',0)   as   IHTMLElement).setAttribute( 'value ',edit1.text,0);(form.item( 'add ',0)   as   IHTMLElement).click;//add为button名称end;

在delphi的WebBrowser中获取和设置Input表单值

vari:Integer;myole:oleVariant;
beginmyole := wb1.Document;for i := 0 to myole.all.length - 1 dobeginif myole.all.item(i).tagName = 'INPUT' thenbeginmmo1.Lines.Add(myole.all.item(i).name);mmo1.Lines.Add(myole.all.item(i).value);end;end;end;
WebBrowser1.GoHome; //到浏览器默认主页
WebBrowser1.Refresh; //刷新
WebBrowser1.GoBack; //后退
WebBrowser1.GoForward; //前进
WebBrowser1.Navigate('...'); //打开指定页面
WebBrowser1.Navigate('about:blank'); //打开空页面
--------------------------------------------------------------------------------
//打开空页面, 并写入...WebBrowser1.Navigate('about:<head><title>标题></title><body>页面内容</body>');
--------------------------------------------------------------------------------
//读取网页脚本中的变量:procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
i: Integer;
begin
s := WebBrowser1.OleObject.document.Script.str;
i := WebBrowser1.OleObject.document.Script.num;
ShowMessage(s); //Hello
ShowMessage(IntToStr(i)); //99//也能够这样读:
s := WebBrowser1.OleObject.document.parentWindow.str;
i := WebBrowser1.OleObject.document.parentWindow.num;
ShowMessage(s); //Hello
ShowMessage(IntToStr(i)); //99
end;
假如网页中有这种语句:
<script>
var
str = "Hello";
i = 99;
</script>--------------------------------------------------------------------------------//调用网页脚本中的函数:procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.OleObject.document.parentWindow.MB(); //HTML-Js//如需指定脚本语言, 须要:
WebBrowser1.OleObject.document.parentWindow.execScript('MB()','JavaScript'); //HTML-Js
end;
假如有这种脚本:
<script>
function MB(){
alert('HTML-Js');
}
</script>--------------------------------------------------------------------------------//推断网页及内部框架网页是否全部完成下载procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if WebBrowser1.Application = pDisp then
begin
Text := '网页完成下载!';
end;
end;--------------------------------------------------------------------------------//改变背景色或背景图片:
WebBrowser1.OleObject.document.body.bgcolor := '#FF0000';
WebBrowser1.OleObject.document.body.background := '...图片地址';
--------------------------------------------------------------------------------
//操作有 ID 标签的对象:
var
s: string;
begin
s := WebBrowser1.OleObject.document.getElementByID('span1').innerText;
ShowMessage(s); //这是 span1 标签中的内容//或者:
s := WebBrowser1.OleObject.document.parentWindow.span1.innerText;
ShowMessage(s); //这是 span1 标签中的内容//隐藏它:
WebBrowser1.OleObject.document.parentWindow.span1.style.display := 'none';
end;
假如网页中有这种内容:
<span id=span1>这是 span1 标签中的内容</span>--------------------------------------------------------------------------------//获取网页源码
var
s: string;
begin
s := WebBrowser1.OleObject.document.body.innerHTML; //body内的全部代码
s := WebBrowser1.OleObject.document.body.outerHTML; //body内的全部代码, 包括body标签
s := WebBrowser1.OleObject.document.documentElement.innerHTML; //html内的全部代码
end;
--------------------------------------------------------------------------------
//WebBrowser 中的右键菜单//先要加入�ApplicationEvents1,指定其Message事件//屏蔽右键菜单
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
with Msg do
begin
if not IsChild(WebBrowser1.Handle, hWnd) then Exit;
Handled := (message = WM_RBUTTONDOWN) or (message = WM_RBUTTONUP) or (message = WM_CONTEXTMENU);
end;
end;//替换右键菜单
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var mPoint: TPoint;
begin
if IsChild(WebBrowser1.Handle, Msg.Hwnd) and
((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) then
begin
GetCursorPos(mPoint); //得到光标位置
PopupMenu1.Popup(mPoint.X, mPoint.Y); //弹出popupmenu1的菜单
Handled:=True;
end;
end;
--------------------------------------------------------------------------------
//新页面写入
begin
WebBrowser1.Navigate('about:blank');
WebBrowser1.OleObject.Document.Writeln('ok');
end; 

自己主动登录

单个frames的输入
var
o : Olevariant;
begin
o := WebBrowser.OleObject.document.all.item('LoginUserID',0);    //找到登录username的输入框
o.value := 'TEST';
o := WebBrowser.oleobject.document.all.item('LoginPassword',0); //找到登录password的输入框
o.value := 'TEST'
WebBrowser.oleobject.document.Forms.Item(0, 0).submit;           //第一个表单提交
{
o :=WebBrowser.oleobject.document.all.item('Login',0);           //或者用指定表单名称提交
o.Click;   //点击操作,对其他对象也可相同操作
}
end;
多个frames的输入,FrameIndex为Frame的序号
var
o : Olevariant;
begin
//找到登录username的输入框
o := WebBrowser.oleobject.document.documentelement.document.frames.item(FrameIndex).document.all.item('LoginUserID',0);
o.value := 'TEST';
//找到登录password的输入框
o := WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.all.item('LoginPassword',0);
o.value := 'TEST'
//第一个表单提交
WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.Forms.Item(0, 0).submit;
{
//或者用指定表单名称提交
o :=WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex)..document.all.item('Login',0);
o.Click;    //点击操作,对其他对象也可相同操作
}
end; 

转载于:https://www.cnblogs.com/yxwkf/p/3998119.html

delphi webbrowser 经常用法演示样例相关推荐

  1. Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)

    Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理) 本篇博客介绍Cocos2d-x的动作管理样例,这个样例展示了Cocos2d-x的几个动作: MoveTo ...

  2. 移动端报表JS开发演示样例

    近期对移动端的报表开发颇有研究,细磨精算了好久,尽管到如今还是"囊中羞涩",但决定还是先抛砖引玉,拿点小干货出来和大家分享. 研究的工具是比較有代表性的FineReport. 1. ...

  3. myloader mysql_myloader恢复mysql数据库演示样例

    ? mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具.备份方式为逻辑备份.它支持多线程.备份速度远高于原生态的mysqldump以及众多优异特性.与其相配套的恢复工具则是mylo ...

  4. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  5. Oracle简单脚本演示样例

    Oracle简单脚本演示样例 1.添加表 --改动日期:2014.09.21 --改动人:易小群 --改动内容:新增採购支付情况表 DECLARE VC_STR           VARCHAR2( ...

  6. Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)

    Cocos2d-x 3.2 Lua演示样例FontTest(字体測试) 本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例,主要使用了字体文件来创建我们想要的字体样式: 第 ...

  7. EEPlat vs saleforce 配置 Knowledge Article 演示样例

    ==================================================================================================== ...

  8. 模式识别 - 处理多演示样例学习(MIL)特征(matlab)

    处理多演示样例学习(MIL)特征(matlab) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27206325 多演示样例学习( ...

  9. 百度地图 Android SDK - 检索功能使用的简单演示样例

    百度地图 SDK 不仅为广大开发人员提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发人员提供了多种 LBS 检索的能力. 通过这些接口,开发人员能够轻松的訪问百度的 LBS 数据,丰富自己的移 ...

最新文章

  1. python机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例
  2. Android 2.0中电话本contact的读写操作(增删改查一)
  3. 采用TCPListener/TCPClient实现图片传输
  4. PPT 下载 | 神策数据张涛:企业服务客户全生命周期运营三步曲总览篇
  5. wxWidgets:wxUpdateUIEvent类用法
  6. BigDecimal踩过的大坑
  7. Jmeter参数化的理解
  8. 控件列[Coolite]上传文件
  9. oracle leg函数,oracle对象 约束索引 游标 函数
  10. 调用腾讯的API接口
  11. GB2312区位码、编码表与编码规则
  12. 敏捷实践 | 如何正确使用故事点预估工作量?
  13. 用python实现分段函数_python:集成分段函数
  14. 【原生js】动态添加class
  15. 2-44钟静雯_day03
  16. C++使用 自定义函数 判断素数
  17. java 123456转换成abcdef_java 数字与字母的转换 (转)
  18. 半年以来的Interview经历
  19. 【杂谈】联想Thinkpad T470p插电源开机报错AC adapter has a lower wattage than the recommended AC
  20. J2ME开发小技巧——模拟器上的快捷键

热门文章

  1. 优秀的API接口设计原则及方法
  2. SPOJ 1811. POJ 2774 . 最大公共子串
  3. JZOJ 3766. 【BJOI2014】大融合
  4. python locust 能压测数据库_深入浅出 Locust 实现
  5. sql int 比较_高质量SQL的30条建议 建议你收藏
  6. 数学之美系列 4 -- 怎样度量信息?
  7. 2018华为软件精英挑战赛总结
  8. 获取前一天的时间安排表_要想有一个完美的婚礼 这份婚庆策划时间表少不了...
  9. @jsonfield注解_好了,不装了,撸个注解有什么难的!
  10. java去掉字符串中前后空格函数_JAVA中去掉字符串空格各种方法详解