AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi TWebBrowser Komponente und Javascript
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi TWebBrowser Komponente und Javascript

Ein Thema von SusiT · begonnen am 24. Mai 2017 · letzter Beitrag vom 20. Mai 2019
Antwort Antwort
Seite 1 von 2  1 2      
SusiT

Registriert seit: 15. Mai 2014
40 Beiträge
 
#1

Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 11:17
Hallo an alle,

ich habe schon sehr viel zum Thema gesucht, gelesen und versucht zu verstehen aber eine Lösung zu einem, meiner Meinung nach eigentlich einfachem Problem, nicht gefunden.

Ich habe eine TWebBrowser Komponente auf ein Formular gezogen und mittels
WebBrowser1.Navigate('http://www.heise.de');
mit einer Webseite versehen.
Das funktioniert bei einfachen Seiten ganz gut.

Sobald Webseiten mit Javascript aufgerufen werden bekomme ich nur noch Fehlermeldungen:

Zb:
'An error has occured in the script on this page'
...
'URL: https://www.heise.de/js/mobile-defle...ed7d6dc25326c5'

Scheinbar können .js Dateien vom Browser Plugin nicht ausgewertet werden.

Da die Browserkomponente auf dem InternetExplorer basiert sollte es doch eigentlich funktionieren da die Webseiten direkt im IE auch problemlos aufgerufen werden können.
Die Frage ist, was getan werden muss, um über das Browserplugin tatsächlich alle Webseiten aufrufen zu können.

Hier nun noch meine Code-Unit. Wie man sieht sehr einfach gehalten. Die Webseite heise.de gibt auch beispielhaft den Fehlerfall zurück.
Code:
unit Unit9;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleCtrls, SHDocVw;

type
  TForm9 = class(TForm)
    WebBrowser1: TWebBrowser;
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form9: TForm9;

implementation

{$R *.dfm}

procedure TForm9.FormShow(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.heise.de');

end;

end.
Ich Danke euch allen für eure Bemühungen.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 11:19
Nicht böse sein, aber wenn du wirklich viel gesucht hast, dann hättest du eigentlich das hier von letzter Woche gefunden:

http://www.delphipraxis.net/192748-i...er-script.html
  Mit Zitat antworten Zitat
SusiT

Registriert seit: 15. Mai 2014
40 Beiträge
 
#3

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 11:41
Bin ich nicht.
Die Sache mit dem Silence Modus ist nicht die Lösung.
Aber das der Browser auf IE7 aufsetzt war mir nicht klar.
Danke ersteinmal.
  Mit Zitat antworten Zitat
SusiT

Registriert seit: 15. Mai 2014
40 Beiträge
 
#4

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 11:59
Abschließend nochmal einen Dank an dich Günther,

das war die fehlende Info.

Hier mein aktualisierter Code, falls es nochmal jemand benötigt. Damit klappt es.

Delphi-Quellcode:
unit Browser;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleCtrls, SHDocVw, Common.Classes.Browser.EmulationAdjuster;

type
  TForm9 = class(TForm)
    WebBrowser1: TWebBrowser;
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form9: TForm9;

implementation

{$R *.dfm}

procedure TForm9.FormShow(Sender: TObject);
begin
  TBrowserEmulationAdjuster.SetBrowserEmulationDWORD(TBrowserEmulationAdjuster.IE11_Quirks);
  WebBrowser1.Navigate('http://www.heise.de');

end;

end.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 12:27
Ich habe es nicht ausprobiert, aber so rein vom Gefühl her finde ich das OnShow -Event des Formulars einen sehr späten Zeitpunkt das einzustellen.
Ich persönlich würde das im OnCreate -Event des Formulars oder sogar noch davor, in der .dpr-Datei vor dem Application.Run() machen.

Nur als Hinweis aber es geht ja auch so
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 14:56
Hat das Setzen des Registry-Eintrags dann nicht auch Auswirkungen auf alle anderen Programme, die das eventuell verwenden? Das einfach mal so pauschal zu ändern, halte ich für keine so optimale Sache. Und was passiert, wenn an dem PC kein IE 11 vorhanden ist?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 15:40
Nein, es gibt in der Registry eine Stelle, an der jedes Programm die IE-Version eintragen kann, die für es selbst emuliert werden soll.

Andere Programm sind davon nicht betroffen.

Und diese Stelle in der Registry ist genau für diese Einstellung von Microsoft so vorgesehen.

Es ist also die optimale Art, die zu emulierende IE-Version für ein Programm vorzugeben.
  Mit Zitat antworten Zitat
SusiT

Registriert seit: 15. Mai 2014
40 Beiträge
 
#8

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 15:42
Mit dem OnCreate hast du recht. Bei dem Code hier handelt es sich nur um ein Demoprogramm um die Funktionalität zu zeigen. In meinem tatsächlichen habe ich es in Form.Create gepackt.

Die Zeile bewirkt, das ein registry Eintrag erzeugt wird. Der regtistry Eintrag ist gekoppelt mit dem .exe Namen der Delphianwendung aus der der Browser gestartet wird. Damit sollte es keine weiteren Auswirkungen haben.
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 24. Mai 2017, 16:00
Ah... ich habe den EXE-Name in dem Registry-Key übersehen. So ist das natürlich stimmig, zumindest wenn man keinen mehrfach vorkommenden Namen verwendet, aber das ist dann halt Pech
  Mit Zitat antworten Zitat
Blackpit

Registriert seit: 27. Feb 2019
77 Beiträge
 
#10

AW: Delphi TWebBrowser Komponente und Javascript

  Alt 19. Mai 2019, 08:42
Auch wenn der Thread schon 2 Jahre her ist, das setzen der Registry ist nur ein mal erforderlich!!
Dies bei jedem öffnen eines TWebBrowser auszuführen macht keinen Sinn.
Sowas gehört in Start bzw. Installationsroutine.

Geändert von Blackpit (19. Mai 2019 um 12:35 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz