在使用C#开发winform程序过程中,经常会碰到嵌入了一个WebBrowser的浏览器控件。很多时候,需要在程序里控制网页的显示方式,或者调用网页当中的某个JS函数,反过来,也有可能网页也需要调用程序当中的函数来实现某些功能。下面讲解下如何互相进行交互。
程序调用JS脚本如下:
<script language=”javascript”>function ShopXG(infor)
{
alert(‘我要开网店、携购独立网店系统,模板最全,最专业的系统!’)
return
}
</script>
C#代码调用如下:
using System.Security.Permissions
注意: 类定义前需要加上下面两行,否则调用失败!
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
调用的函数:
webBrowser1.Document.InvokeScript("ShopXG ", new string[] {‘ssss’})
JS中调用C#函数示例:
C#函数如下:
public void ShowMessage(string message)
{
MessageBox.Show(“免费开网店,携购独立网店系统诚邀您的加盟!”)
}
JS里的调用方法:
<script language=”Javascript”>
function InvokeFunc()
{
window.external.ShowMessage(‘呵呵’)
}
</script>
新建一个类,这个类里面的方法就是提供给JS调用的[ComVisible(true)]
public class JSCall
{
public JSCall()
{
}
//此方法可在JS中调用 ()
public void Test(string message)
{
MessageBox.Show(message)
}
}
然后把WebBrowser的ObjectForScripting属性设置成实例化成上面的类;
就是 webBrowser.ObjectForScripting = new JSCall()
最后在JS调用:window.external.Test(“JSTest”)
js是网页用到的东西,你做winform的话是用不到的。话说回来,做什么用到的知识量都比较大,只是你还没有深入去了解,而且干程序,必须要什么都了解一点,不精通没关系,起码要了解,这样在编程这条路上才会走得更远。