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

webbrowser控件中javascript和VB.net之间共享变量,javascript,vb.net,variables,sharing,Javascript,Vb.net,Variables,Sharing,我有一个带有webbrowser控件的VB.Net表单应用程序。我已经创建了一个HTML5页面作为字符串,并将其作为documenttext加载到webbrowser中。这很有效。现在,如果用户使用D3与实际上是图表的页面进行交互,比如拖动一个项目,我已经更改了javascript变量,我希望将它传输到某种形式的存储中,当VB.Net下次尝试重新加载页面时,VB.Net可以从中获取它 Cookie和localstorage在这种情况下不起作用,因为页面是从本地文件系统而不是服务器运行的。页面中的

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

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


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

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


您正在删除这里的许多选项。我不明白,如果vb不在服务器上,甚至不在本地IIS上,你怎么能运行它。我能看到的唯一方法是对vb.net文件进行ajax调用,并将变量作为post/get发送。然后vb将它保存在一个本地文件中,这可能会比调用数据库更糟糕。