使用 window.external.Sub1(); 从嵌入式 GeckoWebBrowser 调用 VB Sub;
Call VB Sub from Embedded GeckoWebBrowser using window.external.Sub1();
我的网络服务器上有一个 aspx 页面,我通过嵌入式网络浏览器以 windows 形式加载该页面。我可以从 javascript window.external 过程中调用 Sub1。这仅在使用标准 VB 控件 WebBrowser 时出现。我拥有
的必要权限
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
<System.Runtime.InteropServices.ComVisibleAttribute(True)> _
这很好用。但是,我需要使用 GeckoFx,因为我的 javascript 对于标准 WebBrowser 和我的样式来说太复杂了。
我已经尝试过与现在相同的方法,只是使用 geckobrowser,但它根本不起作用,有没有:
GeckoPrefereces.User("somesetting") = True
我需要激活它才能正常工作,还是我还缺少其他东西?
我只想从 GeckoBrowserControl 中嵌入的网页调用我的 windows 表单的 'form close' 过程。
请参考以下 link 作为您的答案,因为它已在此处解决。
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");
我的网络服务器上有一个 aspx 页面,我通过嵌入式网络浏览器以 windows 形式加载该页面。我可以从 javascript window.external 过程中调用 Sub1。这仅在使用标准 VB 控件 WebBrowser 时出现。我拥有
的必要权限<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
<System.Runtime.InteropServices.ComVisibleAttribute(True)> _
这很好用。但是,我需要使用 GeckoFx,因为我的 javascript 对于标准 WebBrowser 和我的样式来说太复杂了。 我已经尝试过与现在相同的方法,只是使用 geckobrowser,但它根本不起作用,有没有:
GeckoPrefereces.User("somesetting") = True
我需要激活它才能正常工作,还是我还缺少其他东西?
我只想从 GeckoBrowserControl 中嵌入的网页调用我的 windows 表单的 'form close' 过程。
请参考以下 link 作为您的答案,因为它已在此处解决。 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");