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