在Silverlight应用程序中前段JavaScript与后台C#之间的交互

1. JavaScript代码中调用C#函数,即前台与后台交互

(1) 引入System.Windows.Browser类库,代码如下

     using System.Windows.Browser;

(2) 先在C#某个函数中利用HtmlPage中的RegisterScriptableObject函数注册一个JavaScript的可执行的对象,代码如下

     HtmlPage.RegisterScriptableObject("TestScriptObject", this);

(3) 利用ScriptableMember在后台代码中(此处在C#中)声明一个前台JavaScript函数能调用的函数,代码如下

         [ScriptableMember]
        public void show(string e)
        { 

            //传入参数可以是普通数据类型,如string等,也可以是JavaScript对象ScriptObject
            MessageBox.Show("前台代码调用后台代码成功");
                    
        }

(4) 在前台JavaScript中调用后台C#函数


   

       
       
   
   
   
   
     
        

         
   
      Get Microsoft Silverlight
   

    


   

C#中的大概代码如下所示:

using System.Windows.Browser;

public partial class MainPage : UserControl
 {

      public MainPage()
        {
               InitializeComponent();

               HtmlPage.RegisterScriptableObject("TestScriptObject", this);    //注册对象
        }

     

       [ScriptableMember]
        public void show(string e)
        { 

            //传入参数可以是普通数据类型,如string等,也可以是JavaScript对象ScriptObject
            MessageBox.Show("前台代码调用后台代码成功");
        }

}

2. 从C#中调用JavaScript函数,即后台与前台交互

   (1) 引入System.Windows.Browser类库

    using System.Windows.Browser;

   (2)  在前台网页中定义一个JavaScript函数,JavaScript代码如下

  (3) 在后台的C#代码中调用JavaScript函数,C#代码如下

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {

                 HtmlPage.Window.Invoke("onSilverlightLoad");

         }

注意:若JavaScript函数中有参数,如下

  (1)  在前台网页中定义一个JavaScript函数,JavaScript代码如下

  (2) 在后台的C#代码中调用JavaScript函数,C#代码如下

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {

                 HtmlPage.Window.Invoke("onSilverlightLoad","from C# call javascript funcion");

         }

      调用输出:后台调用前台函数:from C# call javascript funcion

  

你可能感兴趣的:(编程语言,架构设计,前台与后台的交互,HtmlPage)