Delphi 7 + Webbrowser: erro
Olá pessoal!
Conforme já pesquisei aqui no forum: "Se um site roda bem no IE, tem que rodar na aplicação utilizando o Webbrowser ". Mas abro a página diretamente pelo IE 11 e roda normal, mas pelo webbrowser aparecem erros de scripts e a página carrega mas roda errada:
erro1: "Function.prototype.apply: argumento é nulo ou não definido" ->plugins.js
erro2: "console não está definido" -> na functions.js
erro3: "Identificador, cadeia ou número esperado"
Pessoal, já incluí a opção webbrowser.Silent := True, as mensagens param mas a página roda errada.
Por favor alguma ajuda em como resolver isso?
Giovani
Conforme já pesquisei aqui no forum: "Se um site roda bem no IE, tem que rodar na aplicação utilizando o Webbrowser ". Mas abro a página diretamente pelo IE 11 e roda normal, mas pelo webbrowser aparecem erros de scripts e a página carrega mas roda errada:
erro1: "Function.prototype.apply: argumento é nulo ou não definido" ->plugins.js
erro2: "console não está definido" -> na functions.js
erro3: "Identificador, cadeia ou número esperado"
Pessoal, já incluí a opção webbrowser.Silent := True, as mensagens param mas a página roda errada.
Por favor alguma ajuda em como resolver isso?
Giovani
Giovani V
Curtidas 0
Respostas
Augusto Angelim
14/03/2018
Tem dois caminhos para controlar o erro em páginas com script java!
1) O melhor método, funciona em todas as páginas com script java!
procedure TfrmWebBrowser.WebBrowserShowScriptError(ASender: TObject; const AErrorLine, AErrorCharacter, AErrorMessage, AErrorCode, AErrorUrl: OleVariant; var AOut: OleVariant; var AHandled: Boolean);
begin
// Pode colocar uma rotina de aviso erro aqui! Ex: "StatusBar1.Text := AErrorMessage;" ou ShowMessage('Erro: '+ AErroLine+ ' '+ AErrorMessage);
AHandled := TRUE; // DEFINE AQUI que o aplicativo irá controlar o erro em scripts!
end;
2) Funciona na maioria das páginas com script java
procedure TfrmWebBrowser.WebBrowser1NavigateError(ASender: TObject; const pDisp: IDispatch; const URL, Frame, StatusCode: OleVariant; var Cancel: WordBool);
begin
Cancel := TRUE;
end;
Qualquer coisa... avisa!
:) (Y)
1) O melhor método, funciona em todas as páginas com script java!
procedure TfrmWebBrowser.WebBrowserShowScriptError(ASender: TObject; const AErrorLine, AErrorCharacter, AErrorMessage, AErrorCode, AErrorUrl: OleVariant; var AOut: OleVariant; var AHandled: Boolean);
begin
// Pode colocar uma rotina de aviso erro aqui! Ex: "StatusBar1.Text := AErrorMessage;" ou ShowMessage('Erro: '+ AErroLine+ ' '+ AErrorMessage);
AHandled := TRUE; // DEFINE AQUI que o aplicativo irá controlar o erro em scripts!
end;
2) Funciona na maioria das páginas com script java
procedure TfrmWebBrowser.WebBrowser1NavigateError(ASender: TObject; const pDisp: IDispatch; const URL, Frame, StatusCode: OleVariant; var Cancel: WordBool);
begin
Cancel := TRUE;
end;
Qualquer coisa... avisa!
:) (Y)
GOSTEI 0
Tone Costa.
14/03/2018
O problema é que o Delphi7 utiliza um versao antiga do IE para fazer o webBrowser. Tente o Chromium ou o proprio Mozzila... Ele tem um activeX que voce pode colocar para funcionar no Delphi7.
GOSTEI 0
Giovani V
14/03/2018
Olá pessoal, valeu pelas dicas.
Angelin, você poderia me passar um exemplo:
hoje eu faço assim: webbrowser.navigate("www.google.com.br");
como seria com as procedures que você passou?
valeu
Angelin, você poderia me passar um exemplo:
hoje eu faço assim: webbrowser.navigate("www.google.com.br");
como seria com as procedures que você passou?
valeu
GOSTEI 0
Giovani V
14/03/2018
Tem dois caminhos para controlar o erro em páginas com script java!
1) O melhor método, funciona em todas as páginas com script java!
procedure TfrmWebBrowser.WebBrowserShowScriptError(ASender: TObject; const AErrorLine, AErrorCharacter, AErrorMessage, AErrorCode, AErrorUrl: OleVariant; var AOut: OleVariant; var AHandled: Boolean);
begin
// Pode colocar uma rotina de aviso erro aqui! Ex: "StatusBar1.Text := AErrorMessage;" ou ShowMessage('Erro: '+ AErroLine+ ' '+ AErrorMessage);
AHandled := TRUE; // DEFINE AQUI que o aplicativo irá controlar o erro em scripts!
end;
2) Funciona na maioria das páginas com script java
procedure TfrmWebBrowser.WebBrowser1NavigateError(ASender: TObject; const pDisp: IDispatch; const URL, Frame, StatusCode: OleVariant; var Cancel: WordBool);
begin
Cancel := TRUE;
end;
Qualquer coisa... avisa!
:) (Y)
1) O melhor método, funciona em todas as páginas com script java!
procedure TfrmWebBrowser.WebBrowserShowScriptError(ASender: TObject; const AErrorLine, AErrorCharacter, AErrorMessage, AErrorCode, AErrorUrl: OleVariant; var AOut: OleVariant; var AHandled: Boolean);
begin
// Pode colocar uma rotina de aviso erro aqui! Ex: "StatusBar1.Text := AErrorMessage;" ou ShowMessage('Erro: '+ AErroLine+ ' '+ AErrorMessage);
AHandled := TRUE; // DEFINE AQUI que o aplicativo irá controlar o erro em scripts!
end;
2) Funciona na maioria das páginas com script java
procedure TfrmWebBrowser.WebBrowser1NavigateError(ASender: TObject; const pDisp: IDispatch; const URL, Frame, StatusCode: OleVariant; var Cancel: WordBool);
begin
Cancel := TRUE;
end;
Qualquer coisa... avisa!
:) (Y)
Angelim, você poderia me passar um exemplo:
hoje eu faço assim: webbrowser.navigate("www.google.com.br");
como seria com as procedures que você passou?
valeu
GOSTEI 0