0

組み込みの WPF WebBrowser (.NET ActiveX Wrapper)、Awesomium.NET、および Chromium.NET を試しました。

ここで何かを見逃しただけかどうかはわかりませんが、DOM が変更されたときに C# コードを実行できるようにイベントを発生させる方法があるかどうかはわかりません。可能であれば、タイマーがDOMの変更を毎回チェック/比較するのを避けたい...

それで、私がやりたいことをできるようにするこれらのコントロールで何かを逃したかどうか、またはそうでない場合、DOMChanged イベントを持つ代替/方法はありますか?

4

1 に答える 1

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
}
于 2012-06-25T14:58:08.620 に答える