我正在使用以下代码从IHTMLDocument2获取所有链接:
procedure DoDocumentComplete(const pDisp: IDispatch; var URL: OleVariant);
var
Document:IHTMLDocument2;
Body:IHTMLElement;
Links:IHTMLElementCollection;
i:integer;
tmp:IHTMLElement;
begin
try
Document := (pDisp as IWebbrowser2).Document AS IHTMLDocument2;
Body := Document.body;
Links := Document.links;
for i := 0 to (Links.length-1) do
begin
tmp := (Links.item(i, 0) as IHTMLElement);
//tmp.onclick := HOW SHOULD I ADD THE CALLBACK HERE?
//ShowMessage(tmp.innerText);
end;
except
on E : Exception do
ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
end;
end;
如何在单击链接时将功能/过程附加到.onclick以执行简单的任务,例如显示带有锚文本的警报?
最佳答案
一种方法是使用实现IDispatch的对象(如 http://groups.google.com/group/borland.public.delphi.oleautomation/msg/a57d99e0e52c78ce)从TWebBrowser中吸收事件。
你会设定
tmp.onclick := TEventObject.Create(callbackProcedure) as IDispatch;
关于delphi - 如何在Delphi中将事件附加到IHTMLDocument2链接元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1830289/