分享

C# webBrowser与javascript互调

 sumstars 2014-11-19
C#代码  收藏代码
  1. 实现步骤:  
  2. 一、新建一个窗体,加入webBrowser控件  
  3.     控件名:webBrowser1  
  4.   
  5. 二、在窗体后台代码加入如下定义  
  6. [System.Runtime.InteropServices.ComVisibleAttribute(true)]  
  7.     public partial class Form1 : Form  
  8.     {  
  9.       //...  
  10.     }  
  11. 三、加载网页  
  12.     webBrowser1.Navigate(Application.StartupPath + "/UpDateReport.htm");  
  13.     webBrowser1.ObjectForScripting = this;  //这句必须,不然js不能调用C#  
  14. 四、调用脚本方法  
  15.   
  16. /// <summary>  
  17.         /// 脚本方法  
  18.         /// </summary>  
  19.         /// <param name="tag">JS函数名|参数1|参数2</param>  
  20.         /// <returns></returns>  
  21.         private object EXEC_JS(System.Windows.Forms.WebBrowser webBrowser, string tag)  
  22.         {  
  23.             string[] args = tag.Split('|');  
  24.             if (args.Length == 1)  
  25.             {  
  26.                 return webBrowser.Document.InvokeScript(args[0], null);  
  27.             }  
  28.             else  
  29.             {  
  30.                 object[] objects = new object[args.Length - 1];  
  31.                 Array.Copy(args, 1, objects, 0, objects.Length);  
  32.                 return webBrowser.Document.InvokeScript(args[0], objects);  
  33.             }  
  34.         }  
  35. 五、C#调用脚本方法例子,可以有返回值  
  36.   
  37. //JS方法  
  38.     <script language="javascript">  
  39.     function js_fun(args)  
  40.     {  
  41.          alert("我是通过js脚本弹出的。你输入的内容是:"+args);  
  42.          return "JAVASCRIPT";  
  43.      }  
  44.      </script>  
  45.     //C#代码  
  46.     object returnvalue = EXEC_JS(webBrowser1, "js_fun|参数字符串");  
  47.     MessageBox.Show("js方法返回值是:" + returnvalue.ToString());  
  48. 六、JS调用C#方法的例子  
  49.   
  50. //C#方法  
  51.         public string Test(string args)  
  52.         {  
  53.             return "你输入的是:"+args;  
  54.         }  
  55.     //JS代码  
  56.     <script language="javascript">  
  57.     window.onload = function()  
  58.     {  
  59.         var CS_returnvalue= window.external.Test("aaa");  
  60.         alert(CS_returnvalue);  
  61.     }  
  62.     </script>  

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多