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);
}
}
}