如一张网页中,有一个表单:
<form action="" name="form1" mathod="get">
<input type="text" name="test1" />
</form>那我想在鼠标移到input上面的时候,就可以解得到input的名称为test1以及所属的表单名form1和方法请教高手
<form action="" name="form1" mathod="get">
<input type="text" name="test1" />
</form>那我想在鼠标移到input上面的时候,就可以解得到input的名称为test1以及所属的表单名form1和方法请教高手
SHDocVw, MSHtml, ActiveXvar
E: IHTMLElement;
begin E := (WebBrowser1.Document as IHTMLDocument2).elementFromPoint(Mouse.CursorPos.X, Mouse.CursorPos.Y);
E := (WebBrowser1.Document as IHTMLDocument2).elementFromPoint(100, 100);
Label1.Caption := E.title;
Label1.Caption := E.innerText;
谢谢
看来曲体五周半,腾空翻转,自由下落还是有效的
我先试试看,如果没问题就给分
因为TWebBrowser没有鼠标消息,我先想继承TWebBrowser,再截获消息(WM_MouserOver),但结果不行.
于是采用Application.OnMessage
在没有加载页面的时候可以获得鼠标的消息,但是如果加载页面后,而不能获得鼠标的消息
请教,谢谢
发代码以飨观众
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, MSHTML;type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
private
{ Private declarations }
FLoaded: Boolean;
procedure AppMsg(var Msg: TagMsg; var Handled: Boolean);
procedure GetContronl;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.AppMsg(var Msg: TagMsg; var Handled: Boolean);
var
mPoint : TPoint;
begin
if IsChild(WebBrowser1.Handle, Msg.Hwnd) and
(Msg.Message = WM_MOUSEMOVE) and FLoaded then
begin
GetCursorPos(mPoint);
GetContronl;
//PopupMenu1.Popup(mPoint.X, mPoint.Y);
Handled:=True;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FLoaded := False;
WebBrowser1.Navigate('http://www.kitop.com');
Application.OnMessage := AppMsg;
end;procedure TForm1.GetContronl;
var
E: IHTMLElement;
tmpStr: String;
myPoint: TPoint;
begin
myPoint := Mouse.CursorPos;
myPoint := WebBrowser1.ScreenToClient(myPoint);
{
myPoint.X := myPoint.X + 100;
myPoint.Y := myPoint.Y + 100;
}
E := (WebBrowser1.Document as IHTMLDocument2).elementFromPoint(myPoint.X, myPoint.Y);
//E := (WebBrowser1.Document as IHTMLDocument2).elementFromPoint(100, 100);
//ShowMessage(E.title);
tmpStr := Format('%s,%s,%s,%s;X:%d;Y:%d',[E.className,E.id,E.tagName,E.innerHTML,
myPoint.X,myPoint.Y]);
Caption := tmpStr;
end;procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
FLoaded := True;
end;end.qsdnet(我想学编程):可以参考一下