WebBrowser 操作记要

原文:http://www.quping.com/main/Article/ShowArticle.asp?ArticleID=178

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的Olevariant类型 
单个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; //点击操作,对其它对象也可同样操作
}
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值