AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ExecuteScript

Ein Thema von Andi_j62 · begonnen am 13. Okt 2007 · letzter Beitrag vom 10. Feb 2008
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: ExecuteScript

  Alt 17. Okt 2007, 15:17
Hallo Thomas,

danke für diesen Tipp - diesen Weg habe ich irgendwie völlig übersehen:

Delphi-Quellcode:
unit DemoFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVw;

type
  TDemoForm = class(TForm)
    WebBrowser: TWebBrowser;
    Panel: TPanel;
    Button: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ButtonClick(Sender: TObject);
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

uses
  ActiveX,
  MSHTML;

resourcestring
  HTML
    = '<HTML> <HEAD> <TITLE>Evaluate</TITLE> '
    + '<SCRIPT> function evaluate(x) {'
    + ' alert("hello");'
    + ' return eval(42);'
    + '} </SCRIPT> </HEAD> <BODY> TEST </BODY> </HTML>'
    ;

procedure LoadDocument(doc: OleVariant; s: string);
begin
  doc.Clear;
  doc.Write(s);
  doc.Close;
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  WebBrowser.Navigate('about:blank');
  LoadDocument(WebBrowser.Document, HTML);
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  doc: IHTMLDocument2;
  dScript: IDispatch;
  vResult: OleVariant;
  wsMethod: WideString;
  id: TDispId;
  hr: HRESULT;
  params: TDispParams;
begin
  FillChar(params, SizeOf(params), 0);
  doc := WebBrowser.Document as IHTMLDocument2;
  if Assigned(doc) then
  begin
    dScript := doc.Script;
    if Assigned(dScript) then
    begin
      wsMethod := 'evaluate';
      if Succeeded(dScript.GetIDsOfNames(GUID_NULL, @wsMethod, 1, 0, @id)) then
      begin
        dScript.Invoke(id, GUID_NULL, 0, DISPATCH_METHOD, params, @vResult, nil, nil);
        ShowMessage(IntToStr(vResult));
      end;
    end;
  end;
end;

end.
Freundliche Grüße
  Mit Zitat antworten Zitat
 


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 00:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz