使用webBrowser進行C#和JS通信

一、前臺調用後臺: javascript

在webBrowser使用過程當中爲了C#和JS通信,webBrowser必須設置ObjectForScripting的屬性,它是一個object,這個object能夠提供給webBrowser控件載入的網頁上的script訪問。 java

在設置過webBrowser控件的ObjectForScripting屬性後,還須要設置應用程序對com可見,否則會拋出一個異常 (ObjectForScripting 的類必須對 COM 可見。請確認該對象是公共的,或考慮向您的類添加 ComVisible 屬性),可作以下設置:[System.Runtime.InteropServices.ComVisible(true)] web

例如: windows

  [ComVisible(true)]
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        protected override void OnLoad(EventArgs e)
        {
            webBrowser1.ObjectForScripting = this;
            webBrowser1.Navigate(
http://www.cnblogs.com/winzheng );
            base.OnLoad(e);
        }
public void Test()
{
MessageBox.show("That's OK");
}
    }
而後就能夠使用windows.external.Test();調用後臺的公共方法了。


二、後臺調用前臺: ide

若是要和JS通信,使用webBrowser的Document對象的InvokeScript方法便可。 this

該方法簽名以下:InvokeScript(String spriteName,object[] args); spa

例如:<script type="text/javascript">  orm

function test(n,s) 對象

{              blog

alert(n+"/"+s);    

 }     

</script>

調用:webBrowser1.Document.InvokeScript("test", new Object[] {1,"hello"}); 
相關文章
相關標籤/搜索