@KzLIFE

Как вызвать процедуру Delphi из Javascript (external.test)?

В форме есть компонент WebBrowser в браузере страница index.html
<html>
<body>
<a href="external.test()">Вызовы тестовой процедуры</a>
</body>
</html>

нужно что бы при нажатии на ссылку в браузере, сработал procedure test
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, MSHTML, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    internet: TWebBrowser;
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
internet.Navigate('file://' + GetCurrentDir + '/html/index.html');
end;

procedure test;
begin
ShowMessage('123');
end;
end.
  • Вопрос задан
  • 3272 просмотра
Пригласить эксперта
Ответы на вопрос 1
bejoy
@bejoy
// * Отлавливаем в browser переход по ссылке
procedure TForm1.WeberBeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
 var
  S: String;
begin
  // * Получаем ссылку
  S := URL; 
  // * Сравниваем ссылку с условием
  if ( S[1] = 'external.test()' ) then 
  begin
    // * Отменяем переход по ссылке
    Cancel := True;
    // * Вызываем процедуру
    test;
  end
end;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы