Autor Beitrag
rabby
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61

gentoo

BeitragVerfasst: Di 27.02.07 11:41 
Hallo,

habe eine kleine Browseranwendung, die twebbrowser verwendet.
nun würde ich gerne jedes "abc" durch "def" (in der Source der Seite) ersetzen, was irgendwo auf einer besuchten Internetseite angezeigt wird und zwar bevor es angezeigt wird...
Habe nun viel rumprobiert, doch leider erhalte ich häufig Zugriffsrechteverletzungen durch das Projekt, aber nicht auf jeder Seite und nicht bei jedem Ereignis des Webbrowsers.
Wo/In welches Ereignis von TWB sollte ich es einbauen und welche Webbrowser/Document-Eigenschaft sollte ich verwenden bzw. ist diese (immer) schreibbar oder manchmal nur lesbar?

Danke für Tipps.
Robinator
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 275

WinXP
BDS 2006
BeitragVerfasst: Di 27.02.07 13:01 
Den Source direkt im Webbrowser zu verändern ist, glaub ich, relativ schwer. Ich würde dir empfehlen die Daten per TidHTTP zu downloaden, dann zu manipulieren und erst danach im Webbrowser anzuzeigen.

gruss, rob

_________________
erare humanum est
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 28.02.07 09:42 
Nö, das ist nicht wirklich schwer, man muss nur wissen was man tut bzw. welche Befehle es gibt... ;-)
Als Ereigenis ist dafür OnDocumentComplete2 geeigenet, wobei man dabei darauf achten muss, ob wirklich das gesamte Dokument oder nur eine Frameseite fertig geladen wurde.
Und was den Zugriff angeht, auslesen geht so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var
  Doc: OleVariant; //IHTMLDocument2;
  i, Len: Integer;
  Elements: OleVariant; //IHTMLElementCollection;
  A: OleVariant;
  ActualUserString: String;
begin
  Doc := wbBrowser.Document as IHTMLDocument2;
  Elements := Doc.All;
  Len := Elements.Length;
  pbFortschrittPart.Max := Len;
  for i := 0 to Len-1 do begin
    //Alle Tags durchgehen
    A := Elements.Item(i, varEmpty);
    pbFortschrittPart.Position := i;
    if A.TagName = 'TD' then begin
      //Wenn das Tag vorliegt, das die Daten enthält, ...
      Daten.Add(A.InnerText);
Warum bei dir Fehlermeldungen kommen kann dir niemand beantworten, wenn du nicht den entsprechenden Code angibst...

Was dir noch helfen könnte ist das:
msdn.microsoft.com/l...ument2/document2.asp
Das ist die offizielle Dokumentation von MS zu dem Thema...

Indy benutzen, die Daten verändern und dann die veränderten Daten anzeigen ist finde ich viel zu kompliziert, vor allem wenn man vielleicht sogar z.B. dynamische Inhalte / Skripts auf der Seite hat.