使用window.external.Sub1();从Embedded GeckoWebBrowser调用VB Sub;

时间:2015-02-11 12:08:34

标签: asp.net vb.net geckofx

我的网络服务器上有一个aspx页面,我通过Windows窗体上的嵌入式Web浏览器加载。我可以从javascript window.external过程调用Sub1。这仅在使用标准VB控件WebBrowser时。我有

的必要权限
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
<System.Runtime.InteropServices.ComVisibleAttribute(True)> _

这很好用。但是,我需要使用GeckoFx,因为我的javascript对于标准的WebBrowser以及我的样式来说太复杂了。 我尝试了同样的方法,只是使用geckobrowser,但它根本不起作用,有没有:

GeckoPrefereces.User("somesetting") = True

我需要激活才能使其正常工作或者我还缺少其他东西吗?

我只想打电话给'#39;表格关闭&#39;我的Windows窗体的过程,来自GeckoBrowserControl中嵌入的网页。

1 个答案:

答案 0 :(得分:2)

请参阅以下链接以获取答案,因为此处已解决。 How to call C# method in javascript by using GeckoFX as the wrapper of XULRunner

将此过程更改为C#,因为VB无法将消息发送到过程,只存储该值,这会在以后读取数据时造成困难。

然后:

private void showMessage(string s)
{
   if (s == "some data") 
   {
       //Do stuff here you need to, ie. close the form, etc
   }
}

这使您可以阅读发送的消息并按照您的意愿进行操作。 同样重要的是:

browser.AddMessageEventListener("myFunction", ((string s) => this.showMessage(s)));

必须在加载html或url

之前
myBrowser.Navigate("www.google.com");