в посте описано как в компоненте TWebBrowser выполнить скрипт JavaScript.Для выполнения скрипта потребуются подключить модули MSHTML_TLB, SHDocVw. Модуль SHDocVw идет в комплексе Delphi, а вот модуль MSHTML_TLB нужно экспортировать с Microsoft HTML Object Library. Модуль MSHTML_TLB нужен для определения интерфейса IHTMLDocument2 и выполнения скриптов.
Для получения файла модуля выполним следующие действия:
Теперь у нас есть все необходимые модули и можно написать код для выполнения скрипта JavaScript.
К модулю где будет реализовываться функция подключаем в uses SHTML_TLB, SHDocVw.
И описываем процедуру.
Пример использования данной процедуры.
Для получения файла модуля выполним следующие действия:
- В Delphi открываем Component -> Import ActiveX Control...
- В появившемся окне выбираем Import ActiveX Control, нажимаем Next>>
- В списке выбираем "Microsoft HTML Object Library", нажимаем Next>>
- Указываем каталог куда положим модуль
- Далее на своё усмотрение выбираем создать модуль, добавить его в проект или установить и нажимаем Finish.
Теперь у нас есть все необходимые модули и можно написать код для выполнения скрипта JavaScript.
К модулю где будет реализовываться функция подключаем в uses SHTML_TLB, SHDocVw.
И описываем процедуру.
procedure ExecuteScript(doc: IHTMLDocument2; script: string; language: string);
begin
if doc <> nil then
begin
if doc.parentWindow <> nil then
doc.parentWindow.ExecScript(script, Olevariant(language)) ;
end;
end;
Пример использования данной процедуры.
var
script : string;
begin
//Данный скрипт найдет первый элемент с ID равной = "main" и покажет его тэги;
script := 'var elemMain = document.getElementById("main"); '+
'if (elemMain != null) { alert(elemMain.tagName) ; }';
ExecuteScript(EmbeddedWB1.Document as IHTMLDocument2, script, 'javascript');
end;
Помогло спасибо
ОтветитьУдалить