问题来源: 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