繁体   English   中英

如何与WebBrowser控件传递数据?

[英]How can I pass data to/from a WebBrowser control?

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

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

但是,我正在努力研究如何传递URL中不容易包含的数据。

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

您可以通过从传递的对象中调用方法作为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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM