Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webbrowser Popupblocker (https://www.delphipraxis.net/39190-webbrowser-popupblocker.html)

toms 30. Jan 2005 08:57


Webbrowser Popupblocker
 
Hi,

Suche theoretische Ansätze für einen Popupblocker für TWebbrowser.

Hat jemand Ideen?



PS: Habe schon meine eigenen Ideen möchte aber mal schauen, ob ihr das gleiche machen
würdet, ohne dass ihr diese wisst....

ehem. Benutzer 30. Jan 2005 17:17

Re: Webbrowser Popupblocker
 
Also ich kenn mich sehr wenig mit der Kompo aus, aber theoretisch
würde es gehen wenn man die Befehle im Quelltext die zu einem PopUp fürhen blockt...

Irgendwie so :mrgreen:



MfG

Gentleman 30. Jan 2005 17:49

Re: Webbrowser Popupblocker
 
Zitat:

Also ich kenn mich sehr wenig mit der Kompo aus, aber theoretisch
würde es gehen wenn man die Befehle im Quelltext die zu einem PopUp fürhen blockt...
als ansatz wäre das nicht schlecht, allerdings wird man probleme bekommen, wenn der quelltext z.b. in php geschrieben ist. so ein blocker würde dann villeicht javascript-popups finden.

Ein weiteres problem ist, wie man das gefundene popupfenster auch wirklich blockt, sodass es nicht auftaucht.

ich denke da steckt ziemlich viel arbeit drin... :roll:

Aenogym 30. Jan 2005 18:02

Re: Webbrowser Popupblocker
 
hi,

Delphi-Referenz durchsuchenTWebBrowser.OnNewWindow2 nennt sich das von dir benötigte event:

Delphi-Quellcode:
type TWebBrowserNewWindow2 = procedure(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool) of object;
einfach cancel := true setzen und gut ;)

Aenogym

Tubos 30. Jan 2005 18:08

Re: Webbrowser Popupblocker
 
Zitat:

als ansatz wäre das nicht schlecht, allerdings wird man probleme bekommen, wenn der quelltext z.b. in php geschrieben ist. so ein blocker würde dann villeicht javascript-popups finden.
Warum denn? Das PopUp wird auf jeden Fall mit Javascript gemacht. PHP läuft serverseitig und schickt dann die Daten (z.B. eine HTML-Seite) an den Client.

Remote1 30. Jan 2005 18:11

Re: Webbrowser Popupblocker
 
wenn du das über TWebBrowser.OnNewWindow2 machst, blocks du aber auch allse seiten, welche durch einen link mit _blank geöffnet werden
sprich diejenigen, welche in einem neuen fenster gfeöffnet werden sollen (ich hab deswegen in meinem downloadmanager ne message in der die seite, welche geöffnet werden soll, angezeigt wird und halt die abfrage ob öffnen oder net)

Aenogym 30. Jan 2005 18:12

Re: Webbrowser Popupblocker
 
Zitat:

Zitat von Tubos
Das PopUp wird auf jeden Fall mit Javascript gemacht.

oder per target="_blank". das ist reinstes HTML ;)
aber mein oben geposteter beitrag kann auch dem abhilfe schaffen.

Aenogym

toms 30. Jan 2005 22:24

Re: Webbrowser Popupblocker
 
Danke fuer die Ideen!

Mein Ansatz ist der folgende:
Ein neues Fenster wird nur geoeffnet, wenn ReadyState des Webbrowsers READYSTATE_COMPLETE ist,
d.h das Dokument fertig geladen ist.

Wie findet ihr diese Idee?
Was fuer Tuecken hat dieser Code? (Mal schauen, ob Ihr's herausfindet... :roll: ...)

Delphi-Quellcode:
procedure TfrmMultiDocBrowser.OnNewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
    if (Sender as TEmbeddedWB).ReadyState <> READYSTATE_COMPLETE then
    begin
      ppDisp := nil;
      Cancel := True;
    end;
end;

quizzmaster 1. Feb 2005 13:23

Re: Webbrowser Popupblocker
 
warum überhaupt noch ppDisp := nil ??

Das kannste ruhig weglassen, wenn du cancel := true machst blockt er eh alles

Gentleman 1. Feb 2005 17:07

Re: Webbrowser Popupblocker
 
ich habs nich testen können, aber wenn du cancel auf true stellst, dann kannst du doch keine weiteren seiten öffnen. das heißt, du musst das ganze auch wieder auf false stellen, damit der webbrowser weiterläuft.

die frage ist nur wann cancel wieder auf false stellen? :gruebel:

toms 1. Feb 2005 17:10

Re: Webbrowser Popupblocker
 
Zitat:

Zitat von Gentleman
ich habs nich testen können, aber wenn du cancel auf true stellst, dann kannst du doch keine weiteren seiten öffnen. das heißt, du musst das ganze auch wieder auf false stellen, damit der webbrowser weiterläuft.

die frage ist nur wann cancel wieder auf false stellen? :gruebel:

Cancel wird ja aber nicht in jedem Fall auf True gesetzt...

tester008 1. Feb 2005 17:41

Re: Webbrowser Popupblocker
 
wie wäre es mit einer readystate und dann auf false setzen???

toms 1. Feb 2005 18:13

Re: Webbrowser Popupblocker
 
Cancel ist in jedem Fall anfangs False, wenn es nicht auf True gesetzt wird.


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