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

