Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Popup Blocker (https://www.delphipraxis.net/41080-popup-blocker.html)

sandraeberlein 25. Feb 2005 16:52


Popup Blocker
 
Wie kann ich (jaja Frauen^^) einen Popup Blocker in meinen TWWebbrowser einbauen?
Bin anfängerin!

Vielen Dank!
Sandra

[edit=Luckie]Titel geändert. Der Sinn eines aussagekräftigen Titels ist es, damit man ihn in der Suche findet. Wenn man natürlich einen aussagekraftigen Titel absichtlich verunstalltet wird man ihn mit der Suche auch nicht finden. :roll:, Mfg, Luckie[/edit]

malo 25. Feb 2005 16:54

Re: Pöpüp Blocker
 
Erstmal: WILLKOMMEN IN DER DP :party: :firejump:

Zitat:

Zitat von sandraeberlein
Bin anfängerin!

Dann solltest du aber so ein Projekt gar nicht angehen. Es hat schon seine Gründe, warum die Browser erst so spät einen standardmäßigen Popup-Blocker haben ;)

Allerdings wurde das Thema schonmal angesprochen. Hier im Forum suchenPopUp Blocker

;)

toms 25. Feb 2005 17:03

Re: Pöpüp Blocker
 
Hier ein einfacher Popupblocker:

Delphi-Quellcode:
procedure TfrmMyBrowser.WebOne2NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
var
  Doc: IHTMLDocument2;
  sURL: string;
  Flags: OLEVariant;
begin
  // Wenn das Webbrowser Dokument noch nicht geladen wurde,
  // handelt es sich um ein Popup
  if (Sender as TWebbrowser).ReadyState <> READYSTATE_COMPLETE then
  begin
    // ppDisp := nil;
    Cancel := True
    // URL ermitteln, falls das Popup doch noch angezeigt werden moechte...
    Doc := IHTMLDocument2(TWebBrowser(Sender).Document);
    sURL := Copy(Doc.activeElement.outerHTML, pos('href=',
      Doc.activeElement.outerHTML) + 5, length(Doc.activeElement.outerHTML) -
      pos('href=', Doc.activeElement.outerHTML) + 5);
    sURL := Copy(SsURL, 0, pos('>', sURL) - 1);
    if pos('"', sURL) = 1 then
      sURL := Copy(sURL, 2, Length(sURL) - 1);
    if pos('"', sURL) <> 0 then
      sURL := Copy(sURL, 0, pos('"', sURL));
    if pos('"', sURL) = Length(sURL) then
      sURL := Copy(sURL, 0, Length(sURL) - 1);
   
  end;
end;

BorlanDelphiUser 25. Feb 2005 21:26

Re: Pöpüp Blocker
 
@toms ... funktioniert so ganz gut, nur nicht bei javascripten da kommt es zu Fehlern

toms 25. Feb 2005 21:30

Re: Pöpüp Blocker
 
Zitat:

Zitat von BorlanDelphiUser
@toms ... funktioniert so ganz gut, nur nicht bei javascripten da kommt es zu Fehlern

Kannst du eine URL posten, dann kann ich's kurz testen.

BorlanDelphiUser 25. Feb 2005 22:19

Re: Pöpüp Blocker
 
Die Webseite um die es haupsächlich geht ist diese hier: klamm.de ... ich möchte diese Seite in einem einerm TWebBrowser laufen lassen ... und es soll mir nur das Paidpopup eingeblendet werden, alle anderen logischerweise geblockt. Das Paidpopup wird per Javascript aufgerufen .. dort kommt es dann zum Fehler. Wenn ich die Banner oben anklicke funktioniert es einwandfrei. Ich würde mal vermuten das hängt mit dem href zusammen.

Wenn ich die eine Zeile aus einem anderen Beitrag von dir einfüge erhalte ich folgendes ...

Delphi-Quellcode:
URL := ((TWebBrowser_neu(ASender).document as IHTMLDocument2).activeElement as IHTMLElement).getAttribute('href', 0);
Zitat:

Fehlermeldung: Could not convert variant of type(Null) into type(OleStr)

sandraeberlein 26. Feb 2005 11:13

Re: Pöpüp Blocker
 
Dieser Code geht nicht, aber trotzdem danke ::love::

Ich will einfac alle von diesen dingern blocken, wie geht das?

danke und bussi
Sandra

BorlanDelphiUser 26. Feb 2005 11:25

Re: Pöpüp Blocker
 
Der Code funktioniert schon, nur sind dort ein paar kleine Fehler drin, die du als Anfängerin vielleicht noch nicht so beheben kannst.
Aber wenn du eh alles blocken möchtest dann klicke beim Webbrowser unter Events auf OnNewWindow2 und schreibe dann zwischen begin und end; -> Cancel:=True; ... das müsste dan so ausschauen.

Delphi-Quellcode:
procedure TForm1.WebBrowserNewWindow2(ASender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
  Cancel:=True;
end;
.. dann wird aber wirklich alles geblockt.


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