1. TWebBrowser와 TButton을 하나 올려놓습니다.
2. SHDocVw와 MSHTML을 선언하고 간단한 HTML 소스를 작성합니다.
uses
.., SHDocVw, MSHTML;
const sHTML =
'<html> ' + sLineBreak +
'<head> ' + sLineBreak +
'<meta charset="utf-8"> ' + sLineBreak +
'<title> Delphi & JavaScript Test </title> ' + sLineBreak +
'<script language="JavaScript"> ' + sLineBreak +
'function HelloWorld(Msg) ' + sLineBreak +
'{ ' + sLineBreak +
' alert("Hello World!" + Msg); ' + sLineBreak +
'} ' + sLineBreak +
'</script> ' + sLineBreak +
'</head> ' + sLineBreak +
'<body> ' + sLineBreak +
'Page Run.. ' + sLineBreak +
'</body> ' + sLineBreak +
'</html> ';
3. 폼의 OnShow 이벤트에서 작성한 HTML 소스로 웹브라우저를 실행합니다.
procedure TForm1.FormShow(Sender: TObject);
var
Doc: Variant;
begin
if not Assigned(WebBrowser1.Document) then
WebBrowser1.Navigate('about:blank');
Doc := WebBrowser1.Document;
Doc.Clear;
Doc.Write(sHTML);
Doc.Close;
end;
4. 버튼의 OnClick 이벤트에서 JavaScript를 실행시킵니다.
procedure TForm1.Button1Click(Sender: TObject);
var
Doc: IHTMLDocument2;
HTMLWindow: IHTMLWindow2;
sFunction: string;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
HTMLWindow := Doc.parentWindow;
try
sFunction := Format('HelloWorld("%s")', [' Call Success']); //호출할 함수명과 값을 넣어줍니다.
HTMLWindow.execScript(sFunction, 'JavaScript');
except
ShowMessage('Call Fail');
end;
end;
5. 호출된 함수와 넘겨준 값이 잘 작동되는지 확인합니다.