如何執行腳本?以前我壹直用mshtml中IHTMLWindow2接口的execScript()方法,在Delphi中需要uses MSHTML單元:
uses MSHTML;
procedure TForm1.Button1Click(Sender: TObject);
begin
(WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript(
'alert("hello");', 'javascript')
end;
在CSharp中則需要在工程添加Micrsoft.mshtml,後來得到在地址欄執行腳本的啟發。用WebBrowser的Navigate()方法更簡單:
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('javascript:alert("hello");')
end;
省去了添加引用的麻煩。
如何調用外部的方法?先看壹段在IE中添加收藏夾的代碼:
window.external.AddFavorite(url, title);
腳本中window.external對象就是壹個外部對象,AddFavorite()則是這個外部對象的方法!
查了壹下資料,原來可以通過IDocHostUIHandler接口的GetExternal()方法,指定腳本的外部對象。
在CSharp中更簡單,有WebBrowser.ObjectForScripting屬性直接對應window.external