像这样的问题似乎很多,但找不到答案。
我已经实现了像这个线程这样的 OnClick 事件:http://support.microsoft.com/?kbid=312777但结果是浏览器被完全禁用(滚动条,控件...
我已经搜索了互联网,但找不到明确的解决方案。
有人说必须创建从WsbBrowser继承的新类,然后重载这些事件。其他人说答案在这里 http://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_20661377.html 但我没有帐户。
private void FormBrowser_DocumentComplete(object sender, DWebBrowserEvents2_DocumentCompleteEvent e)
{
mshtml.HTMLDocument doc;
doc = (mshtml.HTMLDocument)FormBrowser.Document;
mshtml.HTMLDocumentEvents2_Event iEvent;
iEvent = (mshtml.HTMLDocumentEvents2_Event)doc;
iEvent.onclick += new HTMLDocumentEvents2_onclickEventHandler(ClickEventHandler);
}
private bool ClickEventHandler(mshtml.IHTMLEventObj e)
{
return true;
}
谁知道解决方案?
我找到了一种方法来处理AxWebBrowser HTML元素的onclick事件。以下是您需要执行的操作:
首先,我们需要创建一个调度程序类:
public class DispatcherSketchClass
{
public DispatcherSketchClass()
{
}
[DispId(0)]
public void DefaultMethod()
{
//this method will be called
}
}
然后我们只是将这个分歧器附加到某个元素:
void AddDispatcher(AxWebBrowser browser)
{
IHTMLDocument2 doc = (IHTMLDocument2)browser.Document;
foreach (IHTMLElement VARIABLE in doc.all)
{
//find right element
if (VARIABLE.title == "the name")
{
// attach here
DispatcherClass dp = new DispatcherClass();
VARIABLE.onclick = dp;
}
}
}
希望这有帮助。