gpt4 book ai didi

WPF 网页浏览器 : How to set element click event?

转载 作者:行者123 更新时间:2023-12-04 06:37:31 25 4
gpt4 key购买 nike

我已经想出了如何在页面加载完成后立即使所有内容变为红色:

private void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e)
{
var doc = (IHTMLDocument2)webBrowser1.Document;
foreach (IHTMLElement elem in doc.all)
{
elem.style.backgroundColor = "#ff0000";
}
}

现在如果我想让元素只在点击时改变颜色怎么办?我看到了 elem有一个 onclick属性,但它的类型是 dynamic所以我不知道该怎么办。 documentation很没用。

最佳答案

您可以通过使用 HTMLDocumentClass 来做到这一点。而不是 IHTMLDocument2界面:

public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}

private void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e)
{
mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)webBrowser1.Document;
doc.HTMLDocumentEvents_Event_onclick += new mshtml.HTMLDocumentEvents_onclickEventHandler(OnClickHandler);
}

bool OnClickHandler()
{
mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)webBrowser1.Document;
mshtml.IHTMLWindow2 win = doc.parentWindow;
win.@event.srcElement.style.backgroundColor = "#ff0000";
return false;
}

}

上述解决方案有一个缺点: onclick事件不会冒泡,即使 false返回(即单击超链接不会导航到其他页面)。

关于WPF 网页浏览器 : How to set element click event?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4689265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com