如何向/从WebBrowser控件传递数据?

时间:2018-01-31 15:40:50

标签: c# winforms cookies

我有一个基本的"包装" WinForms应用程序,它有一些基本控件和一个WebBrowser控件(System.Windows.Forms.WebBrowser)。这链接到一个Web服务,它完成所有实际的工作"我的申请。

出现了在应用程序之间传递一些基本数据的要求。其中一些可以使用DocumentCompleted / Navigated事件并使用URL属性来查看加载的页面,并将请求重定向到其他位置。

但是,我正在努力弄清楚如何传递不容易包含在网址中的数据。

无论如何在请求中设置cookie,或者至少从响应中访问cookie?

1 个答案:

答案 0 :(得分:2)

您可以通过以 ObjectForScripting 的形式从传递的对象中调用方法来传递和获取数据。 试试这个

[ComVisible(true)]
public class MyScriptingClass{
    private string SomeData;
    public string GetSomeData(){
       return SomeData + " Something";
    }
    public void SetSomeData(string some){
       SomeData = some;
    }
}

并设置webBrowser控件的 ObjectForScripting 属性-

webBrowser.ObjectForScripting = new MyScriptingClass();

现在,在您的javascript代码中调用这样的方法-

var someVarFromJs = window.external.GetSomeData();
window.external.SetSomeData("Something to set");