在webbrowser控件中共享javascript和VB .net之间的变量

时间:2017-02-08 06:58:30

标签: javascript vb.net variables sharing

我有一个带有webbrowser控件的VB.Net表单应用程序。我创建了一个HTML5页面作为字符串,并将其作为documenttext加载到webbrowser中。这非常有效。现在,如果用户与页面交互(实际上是使用D3的图表),就像拖动项目一样,我已经改变了javascript变量,我希望将它转移到某种形式的存储,VB .Net可以从VB中获取它.Net尝试下次重新加载页面。

Cookie和localstorage在这种情况下不起作用,因为页面是从本地文件系统而不是服务器运行的。然后,页面中的javascript将给出未定义或空引用错误。

我不希望将变量传输到远程mysql服务器并在它减速时将其取回。我正在寻找在本地执行的任何解决方案。

1 个答案:

答案 0 :(得分:1)

经过一番研究后我找到了答案。可以通过设置webbrowser控件的ObjectForScripting属性来完成。这会将windows窗体类暴露给html页面上的javascript。您必须设置类的权限才能使COM可见。然后JavaScript可以使用window.external对象调用类中的任何函数或对象。

You could see the implementation in the following page

A very detailed explanation can be found in this page