注册 登陆

Delphi 中调用 JavaScript

 本例测试用的 Html 文件(包含三个要测试的 Js 函数):

XML/HTML代码
  1. <html>  
  2. <head>  
  3. <title></title>  
  4.   
  5. <SCRIPT LANGUAGE=javascript>  
  6. <!--   
  7. //重复字符串的函数   
  8. function JsStr2(str) {   
  9.   return str + str;   
  10. }   
  11.   
  12. //计算一个数的倍数的函数   
  13. function JsNum2(num) {   
  14.   return num + num;   
  15. }   
  16.   
  17. //弹出信息框的函数   
  18. function JsMsg(msg) {   
  19.   alert(msg);     
  20. }   
  21. //-->  
  22. </SCRIPT>  
  23.   
  24. </head>  
  25. <body>  
  26. </body>  
  27. </html>  
  28.   

 

 

Delphi代码
  1. unit Unit1;   
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   
  7.   Dialogs, StdCtrls, OleCtrls, SHDocVw;   
  8.   
  9. type  
  10.   TForm1 = class(TForm)   
  11.     WebBrowser1: TWebBrowser;   
  12.     Button1: TButton;   
  13.     Button2: TButton;   
  14.     Button3: TButton;   
  15.     procedure FormCreate(Sender: TObject);   
  16.     procedure Button1Click(Sender: TObject);   
  17.     procedure Button2Click(Sender: TObject);   
  18.     procedure Button3Click(Sender: TObject);   
  19.   end;   
  20.   
  21. var  
  22.   Form1: TForm1;   
  23.   
  24. implementation  
  25.   
  26. {$R *.dfm}  
  27.   
  28. procedure TForm1.FormCreate(Sender: TObject);   
  29. var  
  30.   HtmlPath: string;   
  31. begin  
  32.   WebBrowser1.Left := -WebBrowser1.Width; {隐藏 WebBrowser1}  
  33.   HtmlPath := ExtractFilePath(ParamStr(0)) + 'Test.htm';   
  34.   WebBrowser1.Navigate(HtmlPath);   
  35. end;   
  36.   
  37. procedure TForm1.Button1Click(Sender: TObject);   
  38. var  
  39.   str: Variant;   
  40. begin  
  41.   str := WebBrowser1.OleObject.document.parentWindow.JsStr2('12345');   
  42.   ShowMessage(str);   
  43. end;   
  44.   
  45. procedure TForm1.Button2Click(Sender: TObject);   
  46. var  
  47.   num: Variant;   
  48. begin  
  49.   num := WebBrowser1.OleObject.document.parentWindow.JsNum2(4);   
  50.   ShowMessage(num);   
  51. end;   
  52.   
  53. procedure TForm1.Button3Click(Sender: TObject);   
  54. begin  
  55.   WebBrowser1.OleObject.document.parentWindow.JsMsg('ABC');   
  56.   
  57.   {也可以这样:}  
  58.   WebBrowser1.OleObject.document.parentWindow.execScript('JsMsg("ABCDEFG")''JavaScript');   
  59. end;   
  60.   
  61. end.   

转自万一老师的博客

« 上一篇 | 下一篇 »