Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Frame Disablen (https://www.delphipraxis.net/130761-frame-disablen.html)

API 12. Mär 2009 19:21


Frame Disablen
 
Hallo

Mit JS-Script kann glaub ein Frame so deaktiviert werden:
Code:
 top.frames[0].document.body.disabled=true;
Wie kann ich nun ein frame disablen via IWebbrowser2 oder IHtmlDocument2 Interface?
In MSHTML_TLB habe ich nicht wirklich was gefunden.

API 14. Mär 2009 04:51

Re: Frame Disablen
 
# PUSH #

omata 14. Mär 2009 18:10

Re: Frame Disablen
 
Da du hier nicht zeigst, was du bis jetzt wie machst, kann dir auch keiner konkret helfen...

TWebBrowser OleObject and Document data
How to get all documents for all frames from a TWebbrowser
Load TWebBrowser's document content from stream or string

folgende Units sind ebenfalls wichtig: MSHTML, ActiveX

API 14. Mär 2009 20:14

Re: Frame Disablen
 
Ich habe ja eine Referenz auf das Frame: IHtmlDocument2 wie kann es nun disabled werden?

omata 14. Mär 2009 20:19

Re: Frame Disablen
 
Konkretes Beispiel, das dein Problem verdeutlicht und an dem man weiterarbeiten kann, wäre toll.

API 14. Mär 2009 21:43

Re: Frame Disablen
 
Lade z.B die Seite http://de.selfhtml.org/javascript/be...zweiframes.htm in einen TWebbrowser und disable ein Frame analog zu top.frames[0].document.body.disabled=true;

Dabei kann GetFrameDoc verwendet werden, welches ein IHTMLDocument2 zurück gibt.

Delphi-Quellcode:
function GetFrameDoc(doc: IHTMLDocument2;v: OleVariant): IHTMLDocument2;
var
  win: IHTMLWindow2;
  u: IUnknown;
begin
  u := doc.frames.item(v);
  if Assigned(u)
  and Succeeded(u.QueryInterface(IHTMLWindow2, win))
    then Result := win.Document
    else Result := nil;
end;

omata 14. Mär 2009 22:49

Re: Frame Disablen
 
Delphi-Quellcode:
  WebBrowser1.OleObject.document.frames.item(0).document.body.disabled:=true;

API 15. Mär 2009 08:38

Re: Frame Disablen
 
Danke omata.

Habe es nun so gemacht, da ich schlussendlich nicht den TWebbrowser verwende sondern ein Frame einer IE-Instanz manipuliere:

Delphi-Quellcode:
var
  FrameDoc : IHTMLDocument2;
begin
  FrameDoc := GetFrameDoc([...], 'oben');
  if FrameDoc <> nil then
  begin
    (FrameDoc.body as IHTMLElement3).disabled := True;
  end;
end;


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