AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi oncontextmenu False setzen
Thema durchsuchen
Ansicht
Themen-Optionen

oncontextmenu False setzen

Ein Thema von API · begonnen am 13. Mär 2009 · letzter Beitrag vom 15. Mär 2009
Antwort Antwort
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#1

oncontextmenu False setzen

  Alt 13. Mär 2009, 06:33
Guten Morgen,

In ein IHTMLDocument2 soll ein Code hinzugefügt werden und zwar dieser

Code:
<body oncontextmenu="return false">
Geht das mit insertAdjacentHTML? Und wie?

Edit:

Habe testweise den Webbrowser genommen. So geht es nicht (Kontextmenü wird noch angezeigt)
Delphi-Quellcode:
  Doc := Webbrowser1.Document as IHTMLDocument2; // Doc: IHTMLDocument2;
  Doc.Body.setAttribute('oncontextmenu','return false',0);
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#2

Re: oncontextmenu False setzen

  Alt 14. Mär 2009, 05:51
# PUSH #
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#3

Re: oncontextmenu False setzen

  Alt 15. Mär 2009, 09:48
Also nochmals: Der body tag eines geladenen HTML dokuments sieht so aus:

Code:
<body>
nun soll er so manipuliert werden, dass er so aussieht:

Code:
<body oncontextmenu="return false">
Auf das Dokument soll via IHTMLDocument2 zugegriffen werden.

Code:
Doc := Webbrowser1.Document as IHTMLDocument2; // Doc: IHTMLDocument2;
  Doc.Body.setAttribute('oncontextmenu','return false',0);
Geht das überhaupt mit setAttribute?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: oncontextmenu False setzen

  Alt 15. Mär 2009, 10:37
Hallo,

Mit der THtmlListener Komponente von bsalsa.com geht das ganz einfach.
Die Komponente funktioniert auch mit TWebbrowser oder allgemein wenn ein IHTMLDocument2 vorliegt.

Setze THtmlListener.SinkKind: skDocument
Füge ein OnContextMenu Handler hinzu und erzeuge dafür ein Event.
Eine private Variable: HubLink: IHubLink;

HTML Listener verbinden:
Delphi-Quellcode:
procedure TForm1.ConnectHtmlListener(ASender: TObject);
var
  Doc: IHTMLDocument2;
  CPC: IConnectionPointContainer;
begin
  if not Assigned(HubLink) then
  begin
    Doc := GetFrameDoc(EmbeddedWB1.Doc2, 'oben');
    if Doc <> nil then
    begin
      Doc.QueryInterface(IConnectionPointContainer, CPC);
      if Assigned(CPC) then
        HubLink := HtmlListener1.Connect2(CPC);
    end;
  end;
end;
Oncontextmenu Handler:

Delphi-Quellcode:
procedure TForm1.HtmlListener1HandlersOncontextmenuHandle(Sender: TObject;
  Event: IHTMLEventObj);
begin
  // Contextmenu deaktivieren:
   Event.cancelBubble := True;
   Event.ReturnValue := False;
end;
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 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