多语言展示
当前在线:1065今日阅读:126今日分享:42

C#winform调用JavaScript方法

C#winform调用JavaScript 方法。需要使用Interop.MSScriptControl.dll  控件。下载地址:http://pan.baidu.com/s/1i3pDTWT注意:需要选择项目生成平台为X86,否则调用整个控件时会提示出错!因为控件本身是X86的。
工具/原料

Interop.MSScriptControl.dll

方法/步骤
1

打开解决方案:然后 添加引用。

2

然后找到并添加引用。

3

调用方法:我这里写了一个方法。 ///

       /// 调用JavaScript 方法       ///        /// 方法名       /// 方法参数       /// 要调用方法的JavaScript文件路径       ///         public static object RunScript(string method, string[] pars, string jspath)        {                        ScriptControlClass sc = new ScriptControlClass();            sc.Language = 'javascript';            string javascript1 = GetStringFromFile(jspath);            sc.AddCode(javascript1);            string temppars = '';            foreach (string s in pars)            {                temppars += ''' + s + '',';            }            //去除最后一个,            temppars = temppars.Remove(temppars.LastIndexOf(','));            temppars += ')';            string mainCons = method + '(' + temppars;            object obj = sc.Eval(mainCons);            return obj;        }其实无非即使 通过这个方法,将要调用的JavaScript文件读取进入,最后执行。

4

关于执行:比如我这里调用:JavaScript文件的 hex2char 方法。public static string GetTestMethod(string[] args,string loginMain)        {            return CF.RunScript('hex2char', args, loginMain).ToString();        }即调用hex2char 方法来获取MD5加密后的字符串。实际调用: CF.passWord = CF.GetTestMethod(new string[] { CF.theQQPass, CF.saltKey, CF.verfiyCode, CF.theQQ }, CF.loginMain);

5

注意有一个需要注意的问题:;一般需要调用JavaScript文件只是需要获取js文件某一个方法的执行结果。如果在这个JavaScript文件中具有 浏览器BOM对象,如 WINDOW  ,document等会出现错误。提示找不到对象。那么最好是要么自定义一个对象,要么,删除这些BOM对象以及他的引用。

推荐信息