简单描述一下。
一个窗体上有一个TWebBrowser,里面显示一个html页面,html页面里有若干控件。
问:1 如何让程序知道用户在TWebBrowser里的动作,比如点击页面里的按钮。
2 程序如何修改TWebBrowser里面页面的一个数据,比如修改页面里某个lable的值。
请各位大虾指点迷津,问题停留48小时,麻烦给出事例代码,最好有中文注释。谢谢48小时后若无正确答案,分数将给帮忙顶的朋友。谢谢。
一个窗体上有一个TWebBrowser,里面显示一个html页面,html页面里有若干控件。
问:1 如何让程序知道用户在TWebBrowser里的动作,比如点击页面里的按钮。
2 程序如何修改TWebBrowser里面页面的一个数据,比如修改页面里某个lable的值。
请各位大虾指点迷津,问题停留48小时,麻烦给出事例代码,最好有中文注释。谢谢48小时后若无正确答案,分数将给帮忙顶的朋友。谢谢。
放WebBrowser1到Form上在Button1的OnClick事件中写代码:
WebBrowser1.Navigate('http://www.google.com/intl/zh-CN/');在Button2的OnClick事件中写代码:
Var
aDoc:OleVariant;
begin
if WebBrowser1.ReadyState<>READYSTATE_COMPLETE then
begin
ShowMessage('请先装载页面!');
exit;
end;
aDoc:=WebBrowser1.Document;
aDoc.f.q.value:='我要查询的关键字';
aDoc.f.submit;
注意,要先点击Button1,等页面打开后,再点击Button2大量电脑书籍下载:
http://www.netyi.net/in.asp?id=ForMoreU
现在我想了解第一个问题.
比如,html中的javascript可以得到应用程序中的对象,但不是用new ActiveXObject()来实现的
或者说个具体的例子。我希望知道用户鼠标停留在哪个按钮或超连接上面(用户未进行点击动作)。
希望大家帮忙或给出思路。谢谢。
vHTMLElement: IHTMLElement;
vPoint: TPoint;
begin
if not Assigned(WebBrowser1.Document) then Exit;
vPoint := Mouse.CursorPos;
vPoint := WebBrowser1.ScreenToClient(vPoint);
vHTMLElement := (WebBrowser1.Document as IHTMLDocument2
).elementFromPoint(vPoint.X, vPoint.Y);
if not Assigned(vHTMLElement) then Exit;
Caption := vHTMLElement.tagName;
vHTMLElement := nil;
end;
jiangsheng的方法是最好的。
请大家参考文章:http://siney.nease.net/article/newintf.htm