delphi webbrowser 常用方法示例

  • A+
所属分类:编程茶楼
  1. var   Form   :     IHTMLFormElement     ;  
  2.         D:IHTMLDocument2     ;  
  3. begin  
  4.     with   WebBrowser1   do   begin  
  5.           D   :=   Document   as   IHTMLDocument2;  
  6.           Form   :=   D.Forms.item( 'form1 ',0)   as   IHTMLFormElement;   //form1为表单名  
  7.           //title为表单中的文本框  
  8.         (form.item( 'title ',0)   as   IHTMLElement).setAttribute( 'value ',s_title,0);    
  9.         (form.item( 'content ',0)   as   IHTMLElement).setAttribute( 'value ',edit1.text,0);  
  10.         (form.item( 'add ',0)   as   IHTMLElement).click;//add为按钮名称  
  11.     end;  
  12.  

在delphi的WebBrowser中获取和设置Input表单值

 

  1. var  
  2.     i:Integer;  
  3.     myole:oleVariant;  
  4. begin  
  5.     myole := wb1.Document;  
  6.     for i := 0 to myole.all.length - 1 do  
  7.     begin  
  8.         if myole.all.item(i).tagName = 'INPUT' then  
  9.         begin  
  10.   
  11.             mmo1.Lines.Add(myole.all.item(i).name);  
  12.   
  13.             mmo1.Lines.Add(myole.all.item(i).value);  
  14.         end;  
  15.     end;  
  16.   
  17. end;  


  1. WebBrowser1.GoHome; //到浏览器默认主页  
  2. WebBrowser1.Refresh; //刷新  
  3. WebBrowser1.GoBack; //后退  
  4. WebBrowser1.GoForward; //前进  
  5. WebBrowser1.Navigate('...'); //打开指定页面  
  6. WebBrowser1.Navigate('about:blank'); //打开空页面  
  7. --------------------------------------------------------------------------------  
  8. //打开空页面, 并写入...  
  9.   
  10. WebBrowser1.Navigate('about:<head><title>标题></title><body>页面内容</body>');  
  11. --------------------------------------------------------------------------------  
  12. //读取网页脚本中的变量:  
  13.   
  14. procedure TForm1.Button1Click(Sender: TObject);  
  15. var  
  16. s: string;  
  17. i: Integer;  
  18. begin  
  19. s := WebBrowser1.OleObject.document.Script.str;  
  20. i := WebBrowser1.OleObject.document.Script.num;  
  21. ShowMessage(s); //Hello  
  22. ShowMessage(IntToStr(i)); //99  
  23.   
  24. //也可以这样读:  
  25. s := WebBrowser1.OleObject.document.parentWindow.str;  
  26. i := WebBrowser1.OleObject.document.parentWindow.num;  
  27. ShowMessage(s); //Hello  
  28. ShowMessage(IntToStr(i)); //99  
  29. end;  
  30. 假如网页中有这样的语句:  
  31. <script>  
  32. var  
  33. str = "Hello";  
  34. i = 99;  
  35. </script>  
  36.   
  37. --------------------------------------------------------------------------------  
  38.   
  39. //调用网页脚本中的函数:  
  40.   
  41. procedure TForm1.Button1Click(Sender: TObject);  
  42. begin  
  43. WebBrowser1.OleObject.document.parentWindow.MB(); //HTML-Js  
  44.   
  45. //如需指定脚本语言, 需要:  
  46. WebBrowser1.OleObject.document.parentWindow.execScript('MB()','JavaScript'); //HTML-Js  
  47. end;  
  48. 假如有这样的脚本:  
  49. <script>  
  50. function MB(){ 
  51. alert('HTML-Js'); 
  52. }  
  53. </script>  
  54.   
  55. --------------------------------------------------------------------------------  
  56.   
  57. //判断网页及内部框架网页是否全部下载完毕  
  58.   
  59. procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;  
  60. const pDisp: IDispatch; var URL: OleVariant);  
  61. begin  
  62. if WebBrowser1.Application = pDisp then  
  63. begin  
  64. Text := '网页下载完毕!';  
  65. end;  
  66. end;  
  67.   
  68. --------------------------------------------------------------------------------  
  69.   
  70. //改变背景色或背景图片:  
  71. WebBrowser1.OleObject.document.body.bgcolor := '#FF0000';  
  72. WebBrowser1.OleObject.document.body.background := '...图片地址';  
  73. --------------------------------------------------------------------------------  
  74. //操作有 ID 标签的对象:  
  75. var  
  76. s: string;  
  77. begin  
  78. s := WebBrowser1.OleObject.document.getElementByID('span1').innerText;  
  79. ShowMessage(s); //这是 span1 标签中的内容  
  80.   
  81. //或者:  
  82. s := WebBrowser1.OleObject.document.parentWindow.span1.innerText;  
  83. ShowMessage(s); //这是 span1 标签中的内容  
  84.   
  85. //隐藏它:  
  86. WebBrowser1.OleObject.document.parentWindow.span1.style.display := 'none';  
  87. end;  
  88. 假如网页中有这样的内容:  
  89. <span id=span1>这是 span1 标签中的内容</span>  
  90.   
  91.   
  92. --------------------------------------------------------------------------------  
  93.   
  94. //获取网页源代码  
  95. var  
  96. s: string;  
  97. begin  
  98. s := WebBrowser1.OleObject.document.body.innerHTML; //body内的所有代码  
  99. s := WebBrowser1.OleObject.document.body.outerHTML; //body内的所有代码, 包含body标签  
  100. s := WebBrowser1.OleObject.document.documentElement.innerHTML; //html内的所有代码  
  101. end;  
  102. --------------------------------------------------------------------------------  
  103. //WebBrowser 中的右键菜单  
  104.   
  105. //先要添加ApplicationEvents1,指定其Message事件  
  106.   
  107. //屏蔽右键菜单  
  108. procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);  
  109. begin  
  110. with Msg do  
  111. begin  
  112. if not IsChild(WebBrowser1.Handle, hWnd) then Exit;  
  113. Handled := (message = WM_RBUTTONDOWN) or (message = WM_RBUTTONUP) or (message = WM_CONTEXTMENU);  
  114. end;  
  115. end;  
  116.   
  117. //替换右键菜单  
  118. procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);  
  119. var mPoint: TPoint;  
  120. begin  
  121. if IsChild(WebBrowser1.Handle, Msg.Hwnd) and  
  122. ((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) then  
  123. begin  
  124. GetCursorPos(mPoint); //得到光标位置  
  125. PopupMenu1.Popup(mPoint.X, mPoint.Y); //弹出popupmenu1的菜单  
  126. Handled:=True;  
  127. end;  
  128. end;  
  129. --------------------------------------------------------------------------------  
  130. //新页面写入  
  131. begin  
  132. WebBrowser1.Navigate('about:blank');  
  133. WebBrowser1.OleObject.Document.Writeln('ok');  
  134. end;   

 

自动登录

  1. 单个frames的输入  
  2. var  
  3. o : Olevariant;  
  4. begin  
  5. o := WebBrowser.OleObject.document.all.item('LoginUserID',0);    //找到登录用户名的输入框  
  6. o.value := 'TEST';  
  7. o := WebBrowser.oleobject.document.all.item('LoginPassword',0); //找到登录密码的输入框  
  8. o.value := 'TEST'  
  9. WebBrowser.oleobject.document.Forms.Item(00).submit;           //第一个表单提交  
  10. { 
  11. o :=WebBrowser.oleobject.document.all.item('Login',0);           //或者用指定表单名称提交 
  12. o.Click;   //点击操作,对其它对象也可同样操作 
  13. }  
  14. end;  
  15. 多个frames的输入,FrameIndex为Frame的序号  
  16. var  
  17. o : Olevariant;  
  18. begin  
  19. //找到登录用户名的输入框  
  20. o := WebBrowser.oleobject.document.documentelement.document.frames.item(FrameIndex).document.all.item('LoginUserID',0);  
  21. o.value := 'TEST';  
  22. //找到登录密码的输入框  
  23. o := WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.all.item('LoginPassword',0);  
  24. o.value := 'TEST'  
  25. //第一个表单提交  
  26. WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.Forms.Item(00).submit;  
  27. { 
  28. //或者用指定表单名称提交 
  29. o :=WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex)..document.all.item('Login',0); 
  30. o.Click;    //点击操作,对其它对象也可同样操作 
  31. }  
  32. end;   

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: