我的网络服务器上有一个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中嵌入的网页。
答案 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");