Я работаю над приложением, которое по большей части 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 всегда, кажется, возвращает нуль. Я дважды проверял, и идентификатор элемента согласован.
Мой второй вопрос связан с обработкой события - будет ли это работать на событие click из обычной кнопки HTML-формы до прикрепления к нему некоторого C#?