使用WPF处理WebBrowser控件中托管的JavaScript事件

使用WPF处理WebBrowser控件中托管的JavaScript事件,javascript,wpf,Javascript,Wpf,我有一个WebBrowser控件托管在WPF页面上。我想知道JavaScript函数是否可以调用WPF程序中的事件 我在网页的WebBrowser控件中有一个按钮: <button style="height:100;width:100" id="initButton" onclick="alert('hello');" /> 然后从我的javascript函数调用onclick,如下所示: function SomeEvent(sender, e) { alert('J

我有一个WebBrowser控件托管在WPF页面上。我想知道JavaScript函数是否可以调用WPF程序中的事件

我在网页的WebBrowser控件中有一个按钮:

<button style="height:100;width:100" id="initButton"  onclick="alert('hello');" />
然后从我的javascript函数调用onclick,如下所示:

function SomeEvent(sender, e) {
    alert('JS event handler');
    document.getElementById("initButton").onclick();
 }
当我按下按钮时会调用WPF代码,但当从某个事件调用onclick时不会调用

有没有更简单的方法?是否有更好的方法从JS调用onclick事件,从而调用附加的WPF附加事件?

是的,您可以

WebBrowser
控件具有
ObjectForScripting
属性:

javascript可以调用该对象上的方法,这些方法可以调用wpf页面上的方法来触发事件等。

是的,您可以

WebBrowser
控件具有
ObjectForScripting
属性:

javascript可以调用该对象上的方法,这些方法可以调用wpf页面上的方法来触发事件等。

ObjectForScript就是答案。为了方便起见,这里有一个指向Winforms示例的链接(我也在使用WPF,但WPF页面上没有示例):

值得一提的是,将我的主窗口设置为ObjectForScript对我来说不起作用。我认为您不能使用任何类型的FrameworkElement对象作为您的脚本对象

ObjectForScript就是答案。为了方便起见,这里有一个指向Winforms示例的链接(我也在使用WPF,但WPF页面上没有示例):

值得一提的是,将我的主窗口设置为ObjectForScript对我来说不起作用。我认为您不能使用任何类型的FrameworkElement对象作为您的脚本对象

function SomeEvent(sender, e) {
    alert('JS event handler');
    document.getElementById("initButton").onclick();
 }