Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   TWebBrowser: wie JavaScript debuggen? (https://www.delphipraxis.net/174559-twebbrowser-wie-javascript-debuggen.html)

Caps 29. Apr 2013 12:02

TWebBrowser: wie JavaScript debuggen?
 
Hallöle,

ich habe im Forum bereits ein paar Mal den Vorschlag gelesen, das JavaScript im gekapselten(?) IE mittels der Entwicklertools zu debuggen. Leider finde ich keinen Weg rein.
Hintergrund:
Ich habe den IE10 auf Windows 7 und ein Delphi-Programm, was die TWebBrowser-Komponente benutzt. Wenn ich eine (sorry, leider fremdfirmeninterne) Seite mit dem IE10 selbst öffne (d.h. mit dem Browser von Microsoft), dann klappt alles prima, wenn ich aber die Komponente benutze, so erscheint der Skriptfehler "Mitglied nicht gefunden". Ich würde diesen Fehler nun gern debuggen und habe dafür in den Einstellungen des IE10 "Skriptdebugging deaktivieren (IE)" ausgehakt und "Skriptfehler anzeigen" eingehakt, den Rechner vorsichtshalber neugestartet und dann mein Programm mit der TWebBrowser-Komponente gestartet. Nach Navigation auf die oben genannte Seite erschien der Skriptfehler, aber leider ohne jegliche Möglichkeit des Debuggings. Ist Debugging mit der Komponente überhaupt möglich? Leider tritt der Fehler im Microsoft-IE nicht auf, sonst würde ich F12 drücken.

Mein lächerliches Testprogramm (daran wird's wohl nicht liegen):

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, SHDocVw, Buttons, StdCtrls;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    SpeedButton1: TSpeedButton;
    procedure FormResize(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormResize(Sender: TObject);
begin
WebBrowser1.Width := Width-16;
WebBrowser1.Height := Height-66;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
WebBrowser1.Navigate(WideString(Edit1.Text));
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key = VK_RETURN then SpeedButton1.Click;
end;

end.
Leider habe ich noch keine andere (öffentlich zugängliche) Seite gefunden, auf der dieses Problem (insb. der Unterschied zwischen den beiden IEs) auftritt.

Hmpf. Nur Probleme mit dem Ding.

PS der Vorschlag auf EmbeddedWB oder eine FF-Kapsel zu wechseln ist erstmal aus Zeitgründen keine Alternative. (oder ist einfach nur ein Komponentenaustausch möglich? Zugriff über OLE?)

Mit :|
Caps

jaenicke 29. Apr 2013 12:36

AW: TWebBrowser: wie JavaScript debuggen?
 
Zitat:

Zitat von Caps (Beitrag 1213354)
PS der Vorschlag auf EmbeddedWB oder eine FF-Kapsel zu wechseln ist erstmal aus Zeitgründen keine Alternative. (oder ist einfach nur ein Komponentenaustausch möglich? Zugriff über OLE?)

Bei Chromium hatte ich mit dem Austausch wenig Probleme, nur für die Skriptintegration (external-Objekt für den Aufruf von Delphicode aus JavaSkript heraus) musste ich natürlich ein wenig umschreiben:
https://code.google.com/p/delphichromiumembedded/

Solange du nicht viel mehr machst als die Seite anzeigen, reicht der Austausch der Komponente schon aus, abgesehen von den dann notwendigen DLLs.

Chromium hat den Vorteil, dass du nur die DLLs brauchst und von keinen Systemkomponenten usw. abhängig bist.

Debuggen ist da in der Tat schwierig, ich habe in dem Fall via alert debuggt...

Caps 29. Apr 2013 12:47

AW: TWebBrowser: wie JavaScript debuggen?
 
Ok, danke für die Er- und Entmutigung ;-).

Leider kommt nach dem Laden der Seite eine Reihe an Manipulationen und Skriptaufrufen, so dass ich das mit dem Komponentenaustausch erst untersuchen muss, ob sich das lohnt.
Aber der Fehler passiert ja bereits nach dem Laden der Seite.

Oje. Ich suche mal weiter nach öffentlich zugänglichen Seiten, vielleicht finde ich ja eine...

lg Caps


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 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