私は、ローカルリソースとやりとりすることができるように、ほとんどのhtml/javascript(「HTML5」全体)のライトシェルをWPFアプリケーションのアプリケーションに取り入れています。WPF Webbrowser C#JavaScript interop
アプリケーションには、プログラムでナビゲートする単一のHTMLファイルがあります。ファイルがロードされたら、私はC#で特定のイベントを処理できるようにイベントハンドラをアタッチしようとしています。
私はmshtmlオブジェクトを使用しようとすると、私は戻ってNULLを取得するように見えます。たとえば、次のコードがあります。
string initUrl = "file:///" + Path.Combine(Environment.CurrentDirectory, Path.Combine("Pages", "ComposeSurface.html"));
navBrowser.Navigate(new Uri(initUrl));
navBrowser.Navigated += (o, e2) =>
{
HTMLDocumentClass documentObject = navBrowser.Document as HTMLDocumentClass;
IHTMLElement ele = documentObject.getElementById("initButton");
if (ele != null)
{
Func<IHTMLEventObj, bool> evra = (arg) => { MessageBox.Show("Hello"); return true; };
ele.onclick = evra as object;
}
};
getElementByIdは常にnullを返すようです。私は二重チェックして、要素のIDは一貫しています。
私の2番目の質問は、イベントを処理することです - これはいくつかのC#を添付する限り、通常のHTMLフォームボタンからのクリックイベントに対して機能しますか?