Como executar uma função javascript no webbrowser
Ola pessoal, são muito interessantes os recursos que o delphi oferece
para interagir com páginas web.
Hoje vamos ver como executar funções javascript de uma página carregada
o TWebBrowser.
Primeiramente eis o código fonte da função:
Lembre!
Uses
MSHTML;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| procedure CallJavaScript_WB(WebBrowser: TWebBrowser; StrFun: String);
var
Doc: IHTMLDocument2;
HTMLWindow: IHTMLWindow2;
JSFn: string;
begin
Doc := WebBrowser.Document as IHTMLDocument2;
if not Assigned(Doc) then
Exit;
HTMLWindow := Doc.parentWindow;
if not Assigned(HTMLWindow) then
Exit;
try
JSFn := StrFun;
HTMLWindow.execScript(JSFn, 'JavaScript');
except
ShowMessage('Erro na execução da função JavaScript');
end;
end; |
procedure CallJavaScript_WB(WebBrowser: TWebBrowser; StrFun: String);
var
Doc: IHTMLDocument2;
HTMLWindow: IHTMLWindow2;
JSFn: string;
begin
Doc := WebBrowser.Document as IHTMLDocument2;
if not Assigned(Doc) then
Exit;
HTMLWindow := Doc.parentWindow;
if not Assigned(HTMLWindow) then
Exit;
try
JSFn := StrFun;
HTMLWindow.execScript(JSFn, 'JavaScript');
except
ShowMessage('Erro na execução da função JavaScript');
end;
end;
Exemplo de uso
1
2
3
4
| procedure TForm1.Button2Click(Sender: TObject);
begin
CallJavaScript_WB(WebBrowser1, 'change_itab("news", "nt")');
end; |
procedure TForm1.Button2Click(Sender: TObject);
begin
CallJavaScript_WB(WebBrowser1, 'change_itab("news", "nt")');
end;
Testei com alguns sites e funciona muito bem.
Nos testes utilizei o Delphi 10 seattle.
Fonte base: http://www.devmedia.com.br/forum/executar-uma-funccao-javascript-no-webbrowser/559943
Dúvidas ou sugestões, deixe nos comentários do post.
-
Giovani Da Cruz
-
11.050 views
- 2 comentários
- 10 de novembro de 2016
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Boa tarde,
Trabalho com a versão do Delphi XE 10.1 Berlin, nesta versão o componente TWebBrowser não abre o site http://www.fazenda.rj.gov.br/projetoCISC/ sendo que na versão do Delphi XE2 o site abre perfeitamente.
Acredito que esse site seja aberto dentro de um frame por javascript.
Para abrir o site no TWebBrowser faço o seguinte:
Begin
WebBrowser.Navigate2(‘http://www.fazenda.rj.gov.br/projetoCISC/’);
end;
Ao executar esse site ele levanta uma exceção com erro de execução de script. Haveria uma outra forma de executar o script dessa página?
Obrigado
Danilo,
Vc conseguiu resolver o problema de acesso ao site “http://www.fazenda.rj.gov.br/projetoCISC” ?
Estou tendo um mesmo problema aqui