Skip to main content
 首页 » 编程设计

c#之如何将数据传入/传出 WebBrowser 控件

2024年02月25日35落叶无声

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

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

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

有没有办法在请求中设置 cookie,或者至少从响应中访问 c​​ookie?

请您参考如下方法:

您可以通过从传递的对象调用方法来传递和获取数据,如 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");