gpt4 book ai didi

c# - WPF 浏览器控件在使用 ObjectForScripting window.external.invoke() 时抛出对象不支持属性或方法

转载 作者:太空狗 更新时间:2023-10-29 20:33:23 25 4
gpt4 key购买 nike

我正在尝试从 WPF 浏览器控件网页捕获点击事件。我创建了一个 ObjectForScriptingHelper 类:

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]
public class ObjectForScriptingHelper
{
public void Invoke()
{
MessageBox.Show("Hello");
}
}

在托管 Web 浏览器控件的 WPF 窗口的构造函数中,我使用这个帮助程序类作为 ObjectForScripting:

public MainWindow()
{
InitializeComponent();
StandardWpfBrowser.ObjectForScripting = new ObjectForScriptingHelper();
}

然后我有一个 Uri 变量 ViewPageUri 我导航到:

StandardWpfBrowser.Navigate(ViewPageUri);

然后在浏览器控件显示的页面中我引用了jquery,在html页面中添加了一个按钮并添加了javascript:

$('button').click(function () {
if (window.external === null)
alert('ObjectForScripting is not set');
else
{
alert('ObjectForScripting is set');
window.external.Invoke();
}
})

正在执行 else 分支,但抛出错误消息 object doesn't support property or method 'Invoke'

所有教程和 MSDN 文档都遵循上述方法。我错过了什么吗?

最佳答案

以防其他人遇到同样的问题。事实证明,将方法命名为 Invoke 是问题所在。一旦我更改了方法名称,它就会按预期工作。

关于c# - WPF 浏览器控件在使用 ObjectForScripting window.external.invoke() 时抛出对象不支持属性或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32766780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com