`
buliedian
  • 浏览: 1238372 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

delphi webbrowser与delphi互动

 
阅读更多
http://www.cnblogs.com/del/archive/2009/02/27/993840.html

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;
&amp;amp;amp;lt;br&amp;amp;amp;gt;假如网页中有这样的语句:&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;script&amp;amp;amp;amp;amp;gt;&amp;amp;amp;lt;br&amp;amp;amp;gt;var&amp;amp;amp;lt;br&amp;amp;amp;gt; str = &amp;amp;amp;quot;Hello&amp;amp;amp;quot;;&amp;amp;amp;lt;br&amp;amp;amp;gt; i = 99;&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/script&amp;amp;amp;amp;amp;gt;
//调用网页脚本中的函数:

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.OleObject.document.parentWindow.MB(); //HTML-Js

  //如需指定脚本语言, 需要:
  WebBrowser1.OleObject.document.parentWindow.execScript('MB()','JavaScript'); //HTML-Js
end;
&amp;amp;amp;lt;br&amp;amp;amp;gt;假如有这样的脚本:&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;script&amp;amp;amp;amp;amp;gt;&amp;amp;amp;lt;br&amp;amp;amp;gt;function MB(){ &amp;amp;amp;lt;br&amp;amp;amp;gt; alert('HTML-Js');&amp;amp;amp;lt;br&amp;amp;amp;gt;}&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/script&amp;amp;amp;amp;amp;gt;
//判断网页及内部框架网页是否全部下载完毕

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;
&amp;amp;amp;lt;br&amp;amp;amp;gt;假如网页中有这样的内容:&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;span id=span1&amp;amp;amp;amp;amp;gt;这是 span1 标签中的内容&amp;amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;amp;gt;&amp;amp;amp;lt;br&amp;amp;amp;gt;
//获取网页源代码
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;

//获取网页全部源代码
uses ActiveX;
var
  ms: TMemoryStream;
begin
  if not Assigned(WebBrowser1.Document) then Exit;
  ms := TMemoryStream.Create;
  (WebBrowser1.Document as IPersistStreamInit).Save(TStreamAdapter.Create(ms), True);
  ms.Position := 0;
  Memo1.Lines.LoadFromStream(ms, TEncoding.UTF8);
//  Memo1.Lines.LoadFromStream(ms, TEncoding.Default); {GB2312 等双字节}
  ms.Free;
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;

//从流中写入:
var
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  Memo1.Lines.SaveToStream(ms);
  ms.Position := 0;
  (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
  ms.Free;
end;

//禁止提示脚步错误
procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  WebBrowser1.Silent := True;
end;

//禁止弹出窗口
procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
  Cancel := True;
end;


模拟点击网页中的按钮

分享到:
评论

相关推荐

    Delphi WebBrowser 将一段HTML文字显示在浏览器中.rar

    Delphi WebBrowser 将一段HTML文字显示在网页浏览器中,实际是创建了一个HTML格式内容并显示出来,主要使用Delphi中内置的WebBrowser方法来实现:  WebBrowser1.Navigate('about:blank');  while(tag=0) do ...

    delphi动态 WebBrowser 释放问题.txt

    delphi动态 WebBrowser 释放问题.txt var web:TwebBrowser; procedure TForm1.Button1Click(Sender: TObject); begin web:=TWebBrowser.Create(Self); web.ParentWindow:=Self.Handle; web.SetBounds(100,100,...

    DELPHI+chrome+替换WebBrowser让你的程序嵌入chrome浏览器.zip

    DELPHI+chrome+替换WebBrowser让你的程序嵌入chrome浏览器,此控件非常方便的让你的程序内置chrome浏览器,解决老webbrowser的各种问题,非常方便。Chrome不挑食,基本上什么系统都可以跑,而且速度那是飞快,所以C/...

    Delphi禁止WebBrowser弹出IE的对话框

    在IT行业中,WebBrowser控件是许多Windows应用程序中用于嵌入网页浏览功能的常用组件,特别是在使用Delphi这样的集成开发环境中。Delphi的WebBrowser组件是基于Internet Explorer(IE)的ActiveX控件,因此它会继承...

    fff.rar_WebBrowser delphi_delphi webbrowser_delphi 界面_webbrowser

    在Delphi编程环境中,WebBrowser组件是一个非常强大的工具,它允许开发者将网页浏览功能集成到自己的应用程序中,从而创建出炫目且功能丰富的用户界面。本文将深入探讨如何利用WebBrowser打造令人眼前一亮的软件界面...

    精确判断webbrowser是否加载完成demo(delphi)

    在Delphi编程环境中,WebBrowser组件常常用于在应用程序中嵌入网页浏览功能。然而,如何准确判断WebBrowser组件是否已完全加载完毕,是许多开发者在实际应用中会遇到的一个问题。今天,我们将深入探讨这个问题,并...

    delphi webbrowser

    标题“Delphi WebBrowser”指的是在Delphi编程环境中使用WebBrowser组件进行网页浏览和交互的相关技术。Delphi是一款由Embarcadero Technologies开发的集成开发环境(IDE),它基于Object Pascal语言,广泛用于创建...

    WebBrowser控件(delphi)

    在Delphi中,WebBrowser控件是通过COM组件(Component Object Model)接口实现的,这使得它能够与各种版本的IE浏览器引擎兼容。 嵌入式Web浏览器(Embedded Web Browser,简称E.W.B)是WebBrowser控件的一个实例,...

    Delphi-EmbeddedWB-master_delphiwebbrowser_

    1. JavaScript交互:通过TEmbeddedWB的ExecuteScript方法,可以直接在Delphi应用中执行JavaScript代码,实现与网页的双向通信。 2. 页面控制:可以调用如GoBack、GoForward、Stop、Refresh等方法,模拟浏览器的前进...

    Delphi中webBrowser控件bug.txt

    在IT领域,尤其是在软件开发与维护中,遇到控件或组件的bug是常见的问题,而本文将深入探讨在Delphi编程环境下,WebBrowser控件所出现的一些常见问题及其解决策略。Delphi是一种广泛使用的集成开发环境(IDE),主要...

    Delphi WebBrowser Ole 自动登录网站

    通过调用WebBrowser组件的属性和方法,我们可以与浏览器进行交互,实现一些定制化的功能。 **2. Ole自动化技术** Ole(Object Linking and Embedding)是微软推出的一种技术,用于不同应用程序之间的数据共享和交互...

    webbrowser delphi 事件详解

    ### WebBrowser 常用方法与事件 #### 方法 - **GoBack**:返回当前历史记录中的前一个页面,可以通过键盘快捷键 Alt+左箭头触发。 - **GoForward**:前进到当前历史记录中的下一个页面,可以通过键盘快捷键 Alt+右...

    delphi操作webbrowser的几个技巧

    标题与描述均提及了“Delphi操作WebBrowser的几个技巧”,这一主题聚焦于Delphi编程语言如何有效地控制和交互WebBrowser组件,实现诸如获取网页变量、执行网页函数、设置网页背景、调用网页对象等高级功能。...

    delphi webbrowsser完整截图

    本知识点将围绕"delphi webbrowser完整截图"这一主题,深入讲解如何使用Delphi的WebBrowser控件进行网页内容的截图、打印以及通过邮件发送。 首先,理解WebBrowser控件。这个控件是Delphi提供的,它是ActiveX技术的...

    delphi 从TWebBrowser WebBrowser得到全部html源码

    function GetHtml(const WebBrowser: TWebBrowser): string; ``` 2. **分配内存**: 使用`GlobalAlloc`函数分配一段内存空间用于存放获取到的HTML文本。 ```delphi hHTMLText := GlobalAlloc(GPTR, BufSize);...

    delphi 跟网站的多种交互方式

    5. **WebBrowser组件**:Delphi中的WebBrowser组件是一个强大的控件,它集成了Internet Explorer的核心,可以用来展示网页、执行JavaScript、与网页交互等。如果需要在Delphi程序中嵌入一个浏览器或者自动化一些网页...

    通过webbrowser下载文件(看评论酌情下载)

    在IT领域,Web浏览器控件(WebBrowser)是.NET Framework提供的一种强大工具,它允许开发者在应用程序中嵌入一个能够浏览网页的组件。这个控件通常用于创建基于Web的应用程序或者自动化网页操作。本篇文章将深入探讨...

    Editor-HTML.zip_delphi HTML_delphi webbrowser_edit_editor_html_e

    首先,让我们了解核心组件——Delphi 7中的WebBrowser组件。WebBrowser组件是一个强大的工具,它利用Internet Explorer(IE)的ActiveX控件来展示网页内容。这个组件不仅能够显示HTML页面,还支持JavaScript、CSS和...

    Delphi中WebBrowser的使用技巧汇总

    Delphi中WebBrowser的使用技巧汇总,对使用webbrowser开发很有帮助。

Global site tag (gtag.js) - Google Analytics