我尝试过内置的WPF WebBrowser(.NET ActiveX Wrapper),Awesomium.NET和Chromium.NET。
我不确定我是否只是错过了这里的内容,但是当DOM发生变化以便我的C#代码可以执行时,我不知道是否有任何方法可以引发事件。如果可以的话,我想避免让计时器检查/比较DOM每次更改......
所以,我只是想知道我是否错过了那些允许我做我想做的控件,或者如果没有,是否有任何替代/方法来进行DOMChanged事件?
答案 0 :(得分:2)
我不相信默认使用这些控件有任何方法(尽管我从未使用过Chromium.NET)。
您可以尝试做的一件事是使用JavaScript来检测DOM更改。您可以让您的应用程序注册一个回调函数并编写JavaScript本身。这是Awesomium语法中的一个粗略示例:
myControl.CreateObject("JSCallback");
myControl.SetObjectCallback("JSCallback", "handleDOMChange", OnDOMChange);
myControl.ExecuteJavascript(
//this is where you would write your Javascript method that would detect DOM change and have it execute this handler method
//Here's a post with some info on this (ignore cross-browser compatibility issues since it's all running within Awesomium): http://stackoverflow.com/questions/3219758/detect-changes-in-the-dom
function DOMChangeDetected ()
{
JSCallback.handleDOMChange();
}
);
private void OnDOMChange(object sender, JSCallbackEventArgs eventArgs)
{
//.NET event triggered from JS DOM change detection
}