c#编写仿Firebug,IE Developer Toolbar 鼠标悬停时选中元素的实现方法

添加引用:using mshtml;(C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll)
页面上放webBrowser控件。给Url一个网页地址。
放一按钮button,click事件下:
mshtml.HTMLDocument doc1 = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument; 
mshtml.HTMLDocumentEvents2_Event hevent = (mshtml.HTMLDocumentEvents2_Event)doc1;

hevent.onmouseout += new HTMLDocumentEvents2_onmouseoutEventHandler(hevent_onmouseout);
hevent.onmouseover += new HTMLDocumentEvents2_onmouseoverEventHandler(hevent_onmouseover);
hevent.onmousedown += new HTMLDocumentEvents2_onmousedownEventHandler(hevent_onmousedown);
其中的三个方法:
string oldcolor = "";
void hevent_onmouseover(IHTMLEventObj e)
{
oldcolor = e.toElement.style.border;
e.toElement.style.border = "2px solid blue";
//this.textBox2.Text = e.toElement.parentElement.innerHTML;
string path = "";
IHTMLElement element = e.toElement;this.textBox3.Text = element.className;
while (element.parentElement != null)
{
IHTMLElementCollection elementCollection = element.parentElement.children as IHTMLElementCollection;
path = element.tagName + "(" + elementCollection.length + ")/" + path;
element = element.parentElement;
}
this.textBox3.Text = path;
}

void hevent_onmouseout(IHTMLEventObj pEvtObj)
{
pEvtObj.fromElement.style.border = oldcolor;
}

void hevent_onmousedown(IHTMLEventObj pEvtObj)
{
mshtml.HTMLDocument doc1 = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument;
mshtml.HTMLDocumentEvents2_Event hevent = (mshtml.HTMLDocumentEvents2_Event)doc1;
hevent.onmouseover -= new mshtml.HTMLDocumentEvents2_onmouseoverEventHandler(this.hevent_onmouseover);
pEvtObj.toElement.style.background = oldcolor;
hevent.onmouseout -= new HTMLDocumentEvents2_onmouseoutEventHandler(this.hevent_onmouseout);
hevent.onmousedown -= new HTMLDocumentEvents2_onmousedownEventHandler(hevent_onmousedown);
}
这样就实现了。运行,点击下按钮,然后鼠标放在某个DOM元素上,
就将该元素选中,就会用兰色框起来。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值