Entwickler-Ecke

Internet / Netzwerk - Komponenten von Webseiten entfernen (TWebbrowser)


grilly - Di 23.01.07 17:58
Titel: Komponenten von Webseiten entfernen (TWebbrowser)
Hallo.
Ich arbeite zur Zeit an einem eigenen Webbrowser und bin auf folgendes Problem gestoßen: Die Werbung stört!
Im Firefox gibt es ja die RIP Erweiterung dafür. Wie geht das in Delphi über TWebbrowser?

Bsp:
http://www.google.de/
google logo enfernen
XPath: /html/body/center/img

Danke für die Antworten!


Robinator - Di 23.01.07 18:07

Im OnBeforeNavigate (oder OnNavigate, weis gerade nichtmehr genau, obs OnBefore überhaupt gibt) überprüfen, ob die URL zulässig ist.

gruss, rob


grilly - Di 23.01.07 18:17

Ja das war mir vorher auch schon klar, mir geht's um den befehl, dass ers nicht laden, nicht anzeigen oder löschen soll
URL von google logo: http://www.google.de/intl/de_de/images/logo.gif


Robinator - Di 23.01.07 18:22

Wenn dir das schon vorher klar war, und du dir das event mal angeguckt hättest, müsstest du das jetzt nicht fragen!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure WebBrowserBeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  Cancel := WasAuchImmerErfülltseinMuss;
end;


grilly - Di 23.01.07 18:36

Entschuldigung, ich hab das mit der URL nicht gelesen!

Mir geht es hier im Endeffekt um das was bei dir als 'wasimmeraucherfülltwerdenmuss' steht!
Wie überprüfe ich, ob und wann er die Datei/Bild aufbaut und dann sage, dass das Bild weggelassen werden soll?


Robinator - Di 23.01.07 18:46

Ich hab mir das gerade mal angeguckt und festgestellt, dass das nur funktioniert, wenn das bild in nem eigenen Frame befindlich ist. Sollte das nicht der fall sein, wird das OnBeforeNavigate event garnicht erst gefeuert.

gruss


grilly - Di 23.01.07 19:01

vllt geht es, wenn man an den seitenquelltext, firefox hat sowas immer, rann könnte und da dann die bilder rauslöschen!
kann man den html code in ein memo, die zeile löschen und vergleichen?

edit: das bild befindet sich ja im eigenen frame (oder?). manchmal muss man halt den ganzen iframe rausnehmen um werbung zu bloggen!


loetmann - Sa 27.01.07 15:34

Hallo,

ja, Du lädst die Seite nicht in den Webbrowser sondern z.B. in eine String(list) (Stichwort: InternetOpen/InternetOpenURL/InternetReadFile/WinINet/WinSock). Diesen kannst Du dann durchsuchen und nicht gewünschtes löschen. Das gefilterte Ergebnis stellst Du dann im Browser dar.

Ein Gruß