Como executar uma função javascript no webbrowser – Show Delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

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;

Exemplo de uso

1
2
3
4
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.

Facebook Comments

Posts Relacionados

  • Giovani Da Cruz
  • 178 views
  • 1 comentários
  • 10 de novembro de 2016

Uma resposta para “Como executar uma função javascript no webbrowser”

  1. Danilo disse:

    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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ir ao topo


© 2017 Infus Soluções em Tecnologia - Todos os Direitos Reservados