delphi webbrowser 经常用法演示样例
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 经常用法演示样例相关推荐
- Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)
Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理) 本篇博客介绍Cocos2d-x的动作管理样例,这个样例展示了Cocos2d-x的几个动作: MoveTo ...
- 移动端报表JS开发演示样例
近期对移动端的报表开发颇有研究,细磨精算了好久,尽管到如今还是"囊中羞涩",但决定还是先抛砖引玉,拿点小干货出来和大家分享. 研究的工具是比較有代表性的FineReport. 1. ...
- myloader mysql_myloader恢复mysql数据库演示样例
? mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具.备份方式为逻辑备份.它支持多线程.备份速度远高于原生态的mysqldump以及众多优异特性.与其相配套的恢复工具则是mylo ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- Oracle简单脚本演示样例
Oracle简单脚本演示样例 1.添加表 --改动日期:2014.09.21 --改动人:易小群 --改动内容:新增採购支付情况表 DECLARE VC_STR VARCHAR2( ...
- Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)
Cocos2d-x 3.2 Lua演示样例FontTest(字体測试) 本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例,主要使用了字体文件来创建我们想要的字体样式: 第 ...
- EEPlat vs saleforce 配置 Knowledge Article 演示样例
==================================================================================================== ...
- 模式识别 - 处理多演示样例学习(MIL)特征(matlab)
处理多演示样例学习(MIL)特征(matlab) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27206325 多演示样例学习( ...
- 百度地图 Android SDK - 检索功能使用的简单演示样例
百度地图 SDK 不仅为广大开发人员提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发人员提供了多种 LBS 检索的能力. 通过这些接口,开发人员能够轻松的訪问百度的 LBS 数据,丰富自己的移 ...
最新文章
- python机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例
- Android 2.0中电话本contact的读写操作(增删改查一)
- 采用TCPListener/TCPClient实现图片传输
- PPT 下载 | 神策数据张涛:企业服务客户全生命周期运营三步曲总览篇
- wxWidgets:wxUpdateUIEvent类用法
- BigDecimal踩过的大坑
- Jmeter参数化的理解
- 控件列[Coolite]上传文件
- oracle leg函数,oracle对象 约束索引 游标 函数
- 调用腾讯的API接口
- GB2312区位码、编码表与编码规则
- 敏捷实践 | 如何正确使用故事点预估工作量?
- 用python实现分段函数_python:集成分段函数
- 【原生js】动态添加class
- 2-44钟静雯_day03
- C++使用 自定义函数 判断素数
- java 123456转换成abcdef_java 数字与字母的转换 (转)
- 半年以来的Interview经历
- 【杂谈】联想Thinkpad T470p插电源开机报错AC adapter has a lower wattage than the recommended AC
- J2ME开发小技巧——模拟器上的快捷键
热门文章
- 优秀的API接口设计原则及方法
- SPOJ 1811. POJ 2774 . 最大公共子串
- JZOJ 3766. 【BJOI2014】大融合
- python locust 能压测数据库_深入浅出 Locust 实现
- sql int 比较_高质量SQL的30条建议 建议你收藏
- 数学之美系列 4 -- 怎样度量信息?
- 2018华为软件精英挑战赛总结
- 获取前一天的时间安排表_要想有一个完美的婚礼 这份婚庆策划时间表少不了...
- @jsonfield注解_好了,不装了,撸个注解有什么难的!
- java去掉字符串中前后空格函数_JAVA中去掉字符串空格各种方法详解