One angle - there are probably others - how about doing either directly a
load of the page where you plug in your function into the onload, or use an
invisible/0-size frame/iframe with your function hooked into the onload?
regards,
Laurent

On Fri, Feb 6, 2009 at 12:51 PM, Francois Piette
<[email protected]>wrote:

> Hi !
>
> I have the following problem: Having a web page loaded into a TWebBrowser
> hosted in my Delphi application, I want to have Delphi code execute a
> JavaScript function embedded in the HTML page. How can I do that ?
>
> To help understand what I mean, I've done a sample program (see below)
> loading an HTML page into a TWebBrowser and having a JavaScript function
> named "MyFunction". I want to have Delphi code (let's say a button's event
> handler) calling that JavaScript. How can I do that ?
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
>    sl       : TStringList;
>    ms       : TMemoryStream;
>    HTMLCode : String;
> const
>    CRLF = #13#10;
> begin
>    HtmlCode := '<HTML>' +
>                '<HEADER>' +
>                '<SCRIPT type="text/javascript">' + CRLF +
>                '  function MyFunction() {' + CRLF +
>                '    alert("Hello !");' + CRLF +
>                '  }' + CRLF +
>                '</SCRIPT>' + CRLF +
>                '</HEADER>' +
>                '<BODY>' +
>                'Hello Delphi !' +
>                '</BODY>' +
>                '</HTML>';
>
>    WebBrowser1.Navigate('about:blank');
>    while WebBrowser1.ReadyState < READYSTATE_INTERACTIVE do
>        Application.ProcessMessages;
>
>    if Assigned(WebBrowser1.Document) then begin
>        sl := TStringList.Create;
>        try
>            ms := TMemoryStream.Create;
>            try
>                sl.Text := HTMLCode;
>                sl.SaveToStream(ms);
>                ms.Seek(0, 0);
>                (WebBrowser1.Document as
> IPersistStreamInit).Load(TStreamAdapter.Create(ms));
>            finally
>                ms.Free;
>            end;
>        finally
>            sl.Free;
>        end;
>    end;
> end;
>
> Regards,
> --
> [email protected]
> Author of ICS (Internet Component Suite, freeware)
> Author of MidWare (Multi-tier framework, freeware)
> http://www.overbyte.be
>
_______________________________________________
Delphi mailing list -> [email protected]
http://lists.elists.org/cgi-bin/mailman/listinfo/delphi

Reply via email to