问题来源: http://www.cnblogs.com/del/archive/2008/07/30/1256669.html#1272732
源码下载: http://files.cnblogs.com/del/Dephi-JavaScript.rar
本例测试用的 Html 文件(包含三个要测试的 Js 函数):
本例效果图:
代码文件:
unit?Unit1; interface uses ??Windows,?Messages,?SysUtils,?Variants,?Classes,?Graphics,?Controls,?Forms, ??Dialogs,?StdCtrls,?OleCtrls,?SHDocVw; type ??TForm1?=?class(TForm) ????WebBrowser1:?TWebBrowser; ????Button1:?TButton; ????Button2:?TButton; ????Button3:?TButton; ????procedure?FormCreate(Sender:?TObject); ????procedure?Button1Click(Sender:?TObject); ????procedure?Button2Click(Sender:?TObject); ????procedure?Button3Click(Sender:?TObject); ??end; var ??Form1:?TForm1; implementation {$R?*.dfm} procedure?TForm1.FormCreate(Sender:?TObject); var ??HtmlPath:?string; begin ??WebBrowser1.Left?:=?-WebBrowser1.Width;?{隐藏?WebBrowser1} ??HtmlPath?:=?ExtractFilePath(ParamStr(0))?+?‘Test.htm‘; ??WebBrowser1.Navigate(HtmlPath); end; procedure?TForm1.Button1Click(Sender:?TObject); var ??str:?Variant; begin ??str?:=?WebBrowser1.OleObject.document.parentWindow.JsStr2(‘12345‘); ??ShowMessage(str); end; procedure?TForm1.Button2Click(Sender:?TObject); var ??num:?Variant; begin ??num?:=?WebBrowser1.OleObject.document.parentWindow.JsNum2(4); ??ShowMessage(num); end; procedure?TForm1.Button3Click(Sender:?TObject); begin ??WebBrowser1.OleObject.document.parentWindow.JsMsg(‘ABC‘); ??{也可以这样:} ??WebBrowser1.OleObject.document.parentWindow.execScript(‘JsMsg("ABCDEFG")‘,?‘JavaScript‘); end; end.
窗体文件:
object?Form1:?TForm1 ??Left?=?0 ??Top?=?0 ??Caption?=?‘Form1‘ ??ClientHeight?=?167 ??ClientWidth?=?280 ??Color?=?clBtnFace ??Font.Charset?=?DEFAULT_CHARSET ??Font.Color?=?clWindowText ??Font.Height?=?-11 ??Font.Name?=?‘Tahoma‘ ??Font.Style?=?[] ??OldCreateOrder?=?False ??Position?=?poDesktopCenter ??OnCreate?=?FormCreate ??PixelsPerInch?=?96 ??TextHeight?=?13 ??object?WebBrowser1:?TWebBrowser ????Left?=?64 ????Top?=?48 ????Width?=?154 ????Height?=?97 ????TabOrder?=?0 ????ControlData?=?{ ??????4C000000EB0F0000060A00000000000000000000000000000000000000000000 ??????000000004C000000000000000000000001000000E0D057007335CF11AE690800 ??????2B2E126208000000000000004C0000000114020000000000C000000000000046 ??????8000000000000000000000000000000000000000000000000000000000000000 ??????00000000000000000100000000000000000000000000000000000000} ??end ??object?Button1:?TButton ????Left?=?104 ????Top?=?40 ????Width?=?75 ????Height?=?25 ????Caption?=?‘Button1‘ ????TabOrder?=?1 ????OnClick?=?Button1Click ??end ??object?Button2:?TButton ????Left?=?104 ????Top?=?81 ????Width?=?75 ????Height?=?25 ????Caption?=?‘Button2‘ ????TabOrder?=?2 ????OnClick?=?Button2Click ??end ??object?Button3:?TButton ????Left?=?104 ????Top?=?120 ????Width?=?75 ????Height?=?25 ????Caption?=?‘Button3‘ ????TabOrder?=?3 ????OnClick?=?Button3Click ??end end
在 Delphi 中调用 JavaScript(1) - 回复
原文:https://blog.51cto.com/u_14617575/2823813