我的任务是一个项目,我需要创建一个像 UI 一样的 Firebug 的缩小版本,用户可以在其中加载 HTML 页面,并且当他们将鼠标悬停在元素上时,它们将被突出显示。该应用程序将允许用户选择要在屏幕上抓取的表格....尚未到达该部分。
有什么建议吗?
谢谢
好吧,我没有使用过 Firebug UI,但我已经完全按照您在 WinForms 应用程序中使用 .NET 2.0 WebBrowser 控件的描述完成了。
基本上我将 WebBrowser 和 Timer 控件添加到表单中,然后在计时器经过事件中,我使用 GetCursorPos 本机函数查询鼠标位置并使用 WebBrowser.Document 的(HtmlDocument 类)GetElementFromPoint 方法(将 x 和 y 位置调整为相对于浏览器控件)。
这将返回鼠标位置下的任何 HtmlElement。这是该方法的主要内容:
HtmlElement GetCurrentElement()
{
if (Browser.ReadyState == WebBrowserReadyState.Complete && Browser.Document != null)
{
Win32Point mouseLoc = HtmlScan.Win32.Mouse.GetPosition();
Point mouseLocation = new Point(mouseLoc.x, mouseLoc.y);
// modify location to match offset of browser window and control position:
mouseLocation.X = ((mouseLocation.X - 4) - this.Left) - Browser.Left;
mouseLocation.Y = ((mouseLocation.Y - 31) - this.Top) - Browser.Top;
HtmlElement element = Browser.Document.GetElementFromPoint(mouseLocation);
return element;
}
return null;
}
获得 HtmlElement 后,您可以让 InnerHTML 以您认为合适的方式进行解析。
理查德