我在 WPF 页面上托管了一个 WebBrowser 控件。我想知道 JavaScript 函数是否有任何方法可以调用 WPF 程序中的事件。
我在 WebBrowser 控件的网页上有一个按钮:
<button style="height:100;width:100" id="initButton" onclick="alert('hello');" />
在 WPF 代码中,我尝试以这种方式在按钮上挂钩事件:
mshtml.HTMLButtonElementEvents_Event iEvent;
iEvent = (mshtml.HTMLButtonElementEvents_Event)ele;
iEvent.onclick += new HTMLButtonElementEvents_onclickEventHandler(ClickEventHandler);
...
private bool ClickEventHandler()
{
MessageBox.Show("WPF Event Handler");
return true;
}
然后从我的javascript函数中调用onclick,如下所示:
function SomeEvent(sender, e) {
alert('JS event handler');
document.getElementById("initButton").onclick();
}
当我按下按钮时会调用 WPF 代码,但从 SomeEvent 调用 onclick 时不会调用 WPF 代码。
有没有更简单的方法来做到这一点?有没有更好的方法从 JS 调用 onclick 事件,以便调用附加的 WPF 附加事件?