using System; using System.Reflection; namespace CsharpHttpHelper.Helper { /// /// 用户执行JS的方法 Copyright:http://www.httphelper.com/ /// internal class ExecJsHelper { private static Type type = Type.GetTypeFromProgID("ScriptControl"); /// /// 直接调用JS方法并获取返回的值 /// /// 要执行的JS代码 /// 要调用的方法名 /// 执行结果 internal static string JavaScriptEval(string strJs, string main) { object scriptControl = GetScriptControl(); SetScriptControlType(strJs, scriptControl); return type.InvokeMember("Eval", BindingFlags.InvokeMethod, null, scriptControl, new object[1] { main }).ToString(); } /// /// 获取ScriptControl接口类 /// /// JS /// 对象 /// Type private static Type SetScriptControlType(string strJs, object obj) { type.InvokeMember("Language", BindingFlags.SetProperty, null, obj, new object[1] { "JScript" }); type.InvokeMember("AddCode", BindingFlags.InvokeMethod, null, obj, new object[1] { strJs }); return type; } /// /// 获取ScriptControl接口对象 /// /// ScriptControl对象 private static object GetScriptControl() { return Activator.CreateInstance(type); } } }