博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi下webbrowser的应用
阅读量:5110 次
发布时间:2019-06-13

本文共 7536 字,大约阅读时间需要 25 分钟。

查找操作tagName为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:标题>页面内容');--------------------------------------------------------------------------------//读取网页脚本中的变量:procedure TForm1.Button1Click(Sender: TObject);vars: string;i: Integer;begins := WebBrowser1.OleObject.document.Script.str;i := WebBrowser1.OleObject.document.Script.num;ShowMessage(s); //HelloShowMessage(IntToStr(i)); //99//也可以这样读:s := WebBrowser1.OleObject.document.parentWindow.str;i := WebBrowser1.OleObject.document.parentWindow.num;ShowMessage(s); //HelloShowMessage(IntToStr(i)); //99end;假如网页中有这样的语句:--------------------------------------------------------------------------------//调用网页脚本中的函数:procedure TForm1.Button1Click(Sender: TObject);beginWebBrowser1.OleObject.document.parentWindow.MB(); //HTML-Js//如需指定脚本语言, 需要:WebBrowser1.OleObject.document.parentWindow.execScript('MB()','JavaScript'); //HTML-Jsend;假如有这样的脚本:--------------------------------------------------------------------------------//判断网页及内部框架网页是否全部下载完毕procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;const pDisp: IDispatch; var URL: OleVariant);beginif WebBrowser1.Application = pDisp thenbeginText := '网页下载完毕!';end;end;--------------------------------------------------------------------------------//改变背景色或背景图片:WebBrowser1.OleObject.document.body.bgcolor := '#FF0000';WebBrowser1.OleObject.document.body.background := '...图片地址';--------------------------------------------------------------------------------//操作有 ID 标签的对象:vars: string;begins := 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;假如网页中有这样的内容:这是 span1 标签中的内容--------------------------------------------------------------------------------//获取网页源代码vars: string;begins := 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);beginwith Msg dobeginif 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;beginif IsChild(WebBrowser1.Handle, Msg.Hwnd) and((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) thenbeginGetCursorPos(mPoint); //得到光标位置PopupMenu1.Popup(mPoint.X, mPoint.Y); //弹出popupmenu1的菜单Handled:=True;end;end;--------------------------------------------------------------------------------//新页面写入beginWebBrowser1.Navigate('about:blank');WebBrowser1.OleObject.Document.Writeln('ok');end;

  

单个frames的输入varo : Olevariant;begino := 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的序号varo : 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;

  

 

----------------------------------------------------------------------------------------------------- document属性{ihtmldocument2 方法:}write         //写入writeln        //写入并换行open         //打开一个流,以收集 document.write 或 document.writeln 的输出close         //关闭并输出用 document.open 方法打开的流clear         //清空文档中所有元素, 可能暂时不支持querycommandsupported //是否支持指定命令querycommandenabled  //指定命令是否有效querycommandstate   //是否设置了指定命令querycommandindeterm //指定命令是否处于不确定状态querycommandtext   //命令querycommandvalue   //命令值execcommand      //执行命令execcommandshowhelp  //命令帮助信息createelement     //建立元素elementfrompoint   //指定坐标下的元素createstylesheet   //创建一个样式表{ihtmldocument2 属性:}all          //所有 html 元素的集合images        //所有 image 对象的集合applets        //所有 applet 对象的集合links         //所有 link 对象的集合forms         //所有 form 对象的集合anchors        //所有 anchor 对象的集合scripts        //所有 script 对象的集合frames        //所有 frame 对象的集合, 这应该和 window.frames 是一样的embeds        //所有 embed 对象的集合plugins        //所有 plugin 对象的集合stylesheets      //样式表集合title         //网页标题body         //body 对象activeelement     //当前具有输入焦点的元素designmode      //设计模式, 可选值: inherit on offselection       //当前选择readystate      //页面读取状态: uninitialized、loading、loaded、interactive、completedlinkcolor       //链接的颜色alinkcolor      //活动链接的颜色vlinkcolor      //已访问过的链接的颜色bgcolor        //背景颜色fgcolor        //文本颜色referrer       //返回载入当前页面的页面的 urllocation       //同 window.locationlastmodified     //返回文档最后修改的日期和时间url          //返回当前文档的 urldomain        //返回域名cookie        //返回文档相关的 cookieexpando        //可设置与获取的布尔值, 是否允许扩展charset        //获取文档的字符集名称defaultcharset    //获取浏览器默认的字符集名称mimetype       //文档类型filesize       //文档大小, 单位字节, 用字符串表示filecreateddate    //文档建立时间 ???filemodifieddate   //文档修改时间 ???fileupdateddate    //文档更新时间 ???security       //文档安全protocol       //传输协议nameprop       //文件标题, 好像同 titleparentwindow     //父窗口script        //{ihtmldocument2 事件:}onhelp        //用 f1 获取帮助时on***        //单击时ondbl***      //双击时on***down      //鼠标点下时on***up       //鼠标抬起时on***move      //鼠标移动时on***over      //鼠标进入时on***out      //鼠标离开时onkeypress      //按键时onkeyup        //键按住时onkeydown       //键抬起时onreadystatechange  //状态改变时onrowexit       //当前数据源的数据将要发生变化时onrowenter      //当前数据源的数据发生变化并且有新的数据时ondragstart      //开始拖动时onselectstart     //开始选择时onbeforeupdate    //更新前onafterupdate     //更新后onerrorupdate     //更新错误时{ihtmldocument3 方法:}recalc        //重新获取文档中的全部动态属性releasecapture    //释放文档中对象的鼠标捕捉{ihtmldocument3 属性:}createtextnode    //建立文本attachevent      //绑定事件detachevent      //取消事件绑定createdocumentfragment//创建新文档getelementsbyname   //返回带有指定 name 的对象集合getelementbyid    //返回指定 id 的第一个对象的引用getelementsbytagname //返回指定标签的对象集合documentelement    //获取文档根部节点, 也就是 html 节点uniqueid       //获取对象的唯一标识符dir          //parentdocument    //enabledownloadbaseurl        //基础地址

  

 

  

转载于:https://www.cnblogs.com/hejoy91/p/3447745.html

你可能感兴趣的文章
Codeforces Round #172 (Div. 2) D. Maximum Xor Secondary 单调栈应用
查看>>
...
查看>>
关于大根堆 (模板)
查看>>
堆排序
查看>>
java 垃圾回收总结(可达性分析 引用分类
查看>>
洛谷 P2024 [NOI2001]食物链 (并查集)
查看>>
CSS Sticky Footer实现
查看>>
python之路_socketserver模块
查看>>
一款我用了好多年的多线程FTP软件
查看>>
GreenDao数据库的简单使用
查看>>
Starting cloudera-scm-server: * Couldn't start cloudera-scm-server的解决办法(图文详解)
查看>>
Hadoop的ChainMapper和ChainReducer使用案例(链式处理)(四)
查看>>
linux 强制删除yum安装的php7.2
查看>>
uiautomator_python使用汇总
查看>>
tomcat cluster session同步时保存map数据遇到的问题
查看>>
Javascript备忘录-枚举一个对象的所有属
查看>>
Asp.net MVC DefaultModelBinder分析
查看>>
KVM安装
查看>>
w3cschool -css
查看>>
《Entity Framework 6 Recipes》中文翻译系列 (10) -----第二章 实体数据建模基础之两实体间Is-a和Has-a关系建模、嵌入值映射 (转)...
查看>>