delphi webbrowser 经常用法演示样例
var Form : IHTMLFormElement ;
D:IHTMLDocument2 ;
begin
with WebBrowser1 do begin
D := 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表单值
var
i:Integer;
myole:oleVariant;
begin
myole := wb1.Document;
for i := 0 to myole.all.length - 1 do
begin
if myole.all.item(i).tagName = 'INPUT' then
begin mmo1.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;
delphi webbrowser 经常用法演示样例的更多相关文章
- Java 反射经常用法演示样例
<pre name="code" class="java">import java.lang.reflect.Constructor; import ...
- Thrift的安装和简单演示样例
本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述 ...
- 移动端报表JS开发演示样例
近期对移动端的报表开发颇有研究,细磨精算了好久,尽管到如今还是"囊中羞涩",但决定还是先抛砖引玉,拿点小干货出来和大家分享. 研究的工具是比較有代表性的FineReport. 1. ...
- C#开发Unity游戏教程循环遍历做出推断及Unity游戏演示样例
C#开发Unity游戏教程循环遍历做出推断及Unity游戏演示样例 Unity中循环遍历每一个数据,并做出推断 非常多时候.游戏在玩家做出推断以后.游戏程序会遍历玩家身上大量的所需数据,然后做出推断. ...
- Mockito的简单使用方法演示样例
Mockito是一个流行的Mocking框架.它使用起来简单,学习成本非常低.并且具有非常简洁的API,測试代码的可读性非常高.因此它十分受欢迎,用 户群越来越多.非常多的开源的软件也选择了Mocki ...
- cmake使用演示样例与整理总结
本文代码托管于github cmake_demo cmake中一些提前定义变量 PROJECT_SOURCE_DIR project的根文件夹 PROJECT_BINARY_DIR 执行cmake命 ...
- myloader恢复mysql数据库演示样例
mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具.备份方式为逻辑备份.它支持多线程.备份速度远高于原生态的mysqldump以及众多优异特性.与其相配套的恢复工具则是mylo ...
- [Android]RecyclerView的简单演示样例
去年google的IO上就展示了一个新的ListView.它就是RecyclerView. 下面是官方的说明,我英语能力有限,只是我大概这么理解:RecyclerView会比ListView更具有拓展 ...
- 30个php操作redis经常用法代码样例
这篇文章主要介绍了30个php操作redis经常用法代码样例,本文事实上不止30个方法,能够操作string类型.list类型和set类型的数据,须要的朋友能够參考下 redis的操作非常多的,曾经看 ...
随机推荐
- tengine install
./configure --prefix=/home/admin/local/tengine --with-http_stub_status_module --with-http_ssl_module ...
- hdu3033I love sneakers! (分组背包,错了很多次)
Problem Description After months of hard working, Iserlohn finally wins awesome amount of scholarshi ...
- linux杂记(十二?) 关于账号和密码的二三事
关于密码的二三事 关于账号和密码的二三事 久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒).那么今天就来谈谈关于linux密码和账号的重要概念. 假如你的主机遭到入侵,那么对方的第一个侵入 ...
- Javascript类型检测
原地址 http://www.cnblogs.com/fool/archive/2010/10/07/javascrpt.html 开门见山,我们先来看一下代码: var is = function ...
- 常用笔记: 与VBS当中的Mid()类似的substr()小记
VBS当中有Mid函数,一般形式为:Mid(str,start,len) 对应于JS就类似于:str.substr(start,len) 不过区别的是:VBS中start从1开始,而JS从0开始. ...
- Enum基础
enum ColorE { RED, GREEN, BLUE; } public class GetEnumContent { public static void main(Stri ...
- unity3d 2d游戏制作的模式
经过了4个月不懈的努力,我和图灵教育合作的这本3D游戏开发书预计下个月就要出版了.这里MOMO先打一下广告,图灵的出版社编辑成员都非常给力,尤其是编辑小花为这本书付出了很大的努力,还有杨海玲老师, ...
- bzoj 2542: [Ctsc2001]终极情报网 费用流
题目链接 2542: [Ctsc2001]终极情报网 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 321 Solved: 125[Submit][S ...
- 【LeetCode题意分析&解答】43. Multiply Strings
Given two numbers represented as strings, return multiplication of the numbers as a string. Note: Th ...
- Linux 网络编程基础(3) -- 数据的IO
首先介绍两个数据结构及相关的操作函数:struct iovec.struct msghdr struct iovec { void * iov_base; /*向量的缓冲地址*/ size_t ...