2

对不起,愚蠢的问题,我只想从我的 VB/C# 代码将一个 JOSN 字符串传递给 webbrowser 中的网页,网页中的 javascript 可以通过某些接口调用 VB/C# 方法吗?就像android javascript界面​​一样,非常感谢

4

2 回答 2

3

如果我理解正确,

webBrowser2.ObjectForScripting = new ScriptClass();
webBrowser2.DocumentText = "<html><script>window.external.Test('hello')</script></html>";


[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public class ScriptClass
{
    public void Test(string msg)
    {
        MessageBox.Show(msg);
    }
}
于 2012-10-16T18:10:54.380 回答
2

因此,您正在使用 WebBrowser 控件并且需要在它显示的页面中调用 JavaScript 方法?是的,你可以这样做。它不在 WebBrowser 本身上,但HtmlDocument由 WebBrowser 的Document属性公开的对象有一个InvokeScript()方法组,它允许您以编程方式调用页面 DOM 中的任何 ECMAScript 兼容方法,可选择将一系列参数作为对象传递大批。

反过来,这可用于触发从 JavaScript 到 JSON Web 服务的调用(您在主 CLR 程序中公开该服务,并通过将信息传递给页面来告知页面InvokeScript())。这是基本的 JSON/AJAX 客户端-服务器脚本,所有内容都封装在一个程序中,与自己对话。这不是完成工作的最有效方式,但如果您已经拥有完成工作的这些层,并且只想发布一个独立的应用程序,那么它就可以工作。

于 2012-10-16T17:53:52.717 回答