WebBrowser 操作(从网上收集)
WebBrowser 操作记要
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; //获取网页全部源代码 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;
WebBrowser 操作(从网上收集)相关推荐
- 在网上收集了一部分关于使用Google API进行手机定位的资料和大家分享
在网上收集了一部分关于使用Google API进行手机定位的资料和大家分享: 关于基站定位方面的介绍: http://tech.c114.net/164/a140837.html 开发方面的帮助: h ...
- 关于freemarker(网上收集资料)
copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...
- 网上收集的各网摘地址 备用
网上收集的网摘地址 备用 1.名称:美味书签(del.icio.us) <a href="http://del.icio.us/post" οnclick="win ...
- Android 阅读器架构图,网上收集,留做存货
这个结构图是网上收集的图片,基结构明晰简洁,易于后期维护,本文会继续收集更多其它优秀的结构图,望有图的朋友推荐~
- 网上收集的几个花指令
c++花指令: 00460000: 55 PUSH EBP 00460001: 8B EC M ...
- java规约运算的signature_Java8笔记第七篇(Stream API 的操作-规约,收集 )
深入 java8 第 07 篇 ( Stream API 的操作->规约,收集 ) 一.Stream API 的操作步骤: 创建 Stream 中间操作 终止操作(终端操作 -> 规约,收 ...
- 【微信小程序】页面设计、页面模板、功能模板 、常规操作等技术收集。(持续更新)
源码地址:https://gitee.com/nanfangzhe/Wechat_Assistant Wechat_Assistant 介绍 微信小程序开发.云开发.页面设计.常规操作等技术收集. 软 ...
- WPF使用Webbrowser操作网页的主要代码
1,引用mshtml.dllusingmshtml;2,获取元素属性值IHTMLDocument2 doc2=(IHTMLDocument2)webbrowser1.Document; IHTMLEl ...
- 关于梅森素数定理(网上收集)
一.梅森素数 我们把一个大于1的自然数叫作素数,如果只有1和它本身可以整除它.如果一个比1大的自然数不是素数,我们就叫它合数.1既不是素数,也不是合数. 比如说,你很容易就可以验证7是一个素数:而15 ...
最新文章
- 【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?
- java jxl创建多个sheet,使用jxl导出excel时怎么创建多个sheet | 学步园
- vs五子棋c语言代码,五子棋代码C语言版.doc
- MariaDB 脚本
- fopen php 乱码,如何解决php fgets读取文件乱码的问题
- Mercurial hg web server的配置
- 【Kafka】kafka 0.10.0 版本低级消费 API
- java安卓模拟器和电脑通信_Android 模拟器(JAVA)与C++ socket 通讯 分享
- php采集过滤内容,PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据...
- 改进的OTSU算法处理光照不均匀图像
- 为什么百度云可以给每位用户分配两T的存储空间?
- C++连接MySQL
- P1460 健康的荷斯坦奶牛 Healthy Holsteins (dfs)
- 浅析STM32H7 FDCAN(一)
- 读《我能记住 - 读写记忆困难儿童实战》
- 分治法求循环赛日程表
- PPT封面设计的一些心得
- 设置语言为中文,重启手机后桌面数字时钟,“星期五“变成“Friday“
- [超星课后习题/期末]批判与创意思考
- 谈谈你对垃圾回收机制的了解?