• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphiwebbrowser常用方法示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
[html] view plaincopy
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为按钮名称  
    end;  

在delphi的WebBrowser中获取和设置Input表单值
[delphi] view plaincopy
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;  

[delphi] view plaincopy
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;   

自动登录
[delphi] view plaincopy
单个frames的输入  
var  
o : Olevariant;  
begin  
o := WebBrowser.OleObject.document.all.item('LoginUserID',0);    //找到登录用户名的输入框  
o.value := 'TEST';  
o := WebBrowser.oleobject.document.all.item('LoginPassword',0); //找到登录密码的输入框  
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  
//找到登录用户名的输入框  
o := WebBrowser.oleobject.document.documentelement.document.frames.item(FrameIndex).document.all.item('LoginUserID',0);  
o.value := 'TEST';  
//找到登录密码的输入框  
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;    //点击操作,对其它对象也可同样操作 
}  

强大 http://blog.csdn.net/baronyang/article/details/7485258


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap