0

我的任务是一个项目,我需要创建一个像 UI 一样的 Firebug 的缩小版本,用户可以在其中加载 HTML 页面,并且当他们将鼠标悬停在元素上时,它们将被突出显示。该应用程序将允许用户选择要在屏幕上抓取的表格....尚未到达该部分。

有什么建议吗?

谢谢

4

1 回答 1

3

好吧,我没有使用过 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 以您认为合适的方式进行解析。

理查德

于 2008-10-06T01:22:47.800 回答