问题描述
请问大家在C#中是否可以调用解释执行的脚本语言,例如JavaScript,VBScript等。
解决方案
解决方案二:
不能,需要第三方类库解释执行,
解决方案三:
Response.Write("<script>alert('irow="+Session["irow"].ToString()+"');</script>");
解决方案四:
如果是Asp.NET那可以。。Page.ClientScript.RegisterStartupScriptPage.ClientScript.XX...
解决方案五:
或者用msscript.ocx,微软的脚本控件,
解决方案六:
引用楼主yz_zcg的回复:
请问大家在C#中是否可以调用解释执行的脚本语言,例如JavaScript,VBScript等。
你要在具体点,ASP.NET那是可以的,
解决方案七:
引用5楼chinajiyong的回复:
引用楼主yz_zcg的回复:请问大家在C#中是否可以调用解释执行的脚本语言,例如JavaScript,VBScript等。你要在具体点,ASP.NET那是可以的,
是指C#程序语言,不是ASP.NET,不在客户端浏览器运行。
解决方案八:
只能通过控件方式运行。
解决方案九:
同4楼,我还用过~~~~直接拉别人的js,得到运行结果,连破解都省了~~~
解决方案十:
可以用lua,paxscript,v8等,也可以用CodeDomProvider动态执行C#代码
解决方案十一:
我正在用的js解释器///<summary>///JSEngine在后台运行js的解释器返回值///</summary>publicclassJSEngine{//初始化加载程序的字符串;publicstaticreadonlyString_jsString=@"classtheEval{publicfunctionEval(str:String):String{returneval(str)}}";publicstaticreadonlyString_jsClassName=@"theEval";publicstaticreadonlyString_jsMethodName=@"Eval";//定义对象publicstaticobject_evalObject=newobject();publicstaticType_evalType=newobject().GetType();//构造函数staticJSEngine(){CreatJSEngine(ref_evalObject,ref_evalType,_jsString,_jsClassName);}///<summary>///初始化引擎的方法///</summary>///</summary>///<paramname="evalObject">指定一个已存在的变量保存使用evalType的类型生成一个实例</param>///<paramname="evalType">指定一个已存在的变量保存生成的程序集中有指定名称的对象type</param>///<paramname="jsString">指定用来生成程序集的代码文本</param>///<paramname="jsClassName">指定用来进行调用的程序集中的类别名称</param>privatestaticvoidCreatJSEngine(refobjectevalObject,refTypeevalType,stringjsString,stringjsClassName){CodeDomProvider_provider=newJScriptCodeProvider();CompilerParameters_parameters=newCompilerParameters();_parameters.GenerateInMemory=true;CompilerResults_result=_provider.CompileAssemblyFromSource(_parameters,jsString);Assembly_assembly=_result.CompiledAssembly;evalType=_assembly.GetType(jsClassName);evalObject=Activator.CreateInstance(evalType);}///<summary>///StringEval///</summary>///<paramname="inp_JSString">传入一个表达式</param>///<returns>返回一个表达式的值</returns>publicstaticobjectStringEval(stringinp_JSString){return_evalType.InvokeMember(_jsMethodName,BindingFlags.InvokeMethod,null,_evalObject,newobject[]{inp_JSString});}///<summary>///StringEval///</summary>///<paramname="inp_JSFunctionString">指定用来生成程序集的代码文本</param>///<paramname="inp_JSFunctionClassName">指定用来进行调用的程序集中的类别名称</param>///<paramname="inp_JSFunctionClassFuncName">指定用来进行调用的程序集中的类别中的函数的名称</param>///<paramname="inp_ParameterObject">要传递到程序集中的变量对象数组,无参时使用newobject[0]</param>///<returns>返回函数调用的值</returns>publicstaticobjectStringEval(stringinp_JSFunctionString,stringinp_JSFunctionClassName,stringinp_JSFunctionClassFuncName,object[]inp_ParameterObject){objectClosureevalObject=null;TypeClosureevalType=null;CreatJSEngine(refClosureevalObject,refClosureevalType,inp_JSFunctionString,inp_JSFunctionClassName);returnClosureevalType.InvokeMember(inp_JSFunctionClassFuncName,BindingFlags.InvokeMethod,null,ClosureevalObject,inp_ParameterObject);}///<summary>///StringEval///</summary>///<paramname="inp_JSString">传入一个表达式</param>///<paramname="inp_theType">指定的要返回的值类型</param>///<returns>返回的值</returns>publicstaticobjectStringEval(stringinp_JSString,Typeinp_theType){returnMicrosoft.JScript.Convert.Coerce(_evalType.InvokeMember(_jsMethodName,BindingFlags.InvokeMethod,null,_evalObject,newobject[]{inp_JSString}),inp_theType);}}
解决方案十二:
我这个是用来在后台计算javascript表达示值的,所以直接指定了类和方法名,只让你输入方法中的执行语句。你可以改成自己的。
解决方案十三:
ScriptRunTime
解决方案十四:
引用2楼bdmh的回复:
C#codeResponse.Write("<script>alert('irow="+Session["irow"].ToString()+"');</script>");
解决方案十五:
publicstaticobjectStringEval(stringinp_JSFunctionString,stringinp_JSFunctionClassName,stringinp_JSFunctionClassFuncName,object[]inp_ParameterObject)这个重载是用来生成自己的js类,并调用其中方法的
解决方案:
这个本质上是调用微软的JScript解释引擎来解释执行javascript,个别方法不支持,如alert
解决方案:
Jint
解决方案:
引用10楼hwbox的回复:
我正在用的js解释器C#code///<summary>///JSEngine在后台运行js的解释器返回值///</summary>publicclassJSEngine{//初始化加载程序的字符串;publicstaticreadonlyString_jsString=@"c……
真没用过,支持一下
解决方案:
不可以执行,脚本语言是写给浏览器认的,但是在页面上写好,却可以在C#中让它在页面执行,注意不是在C#中执行Page.ClientScript.RegisterStartupScript
解决方案:
引用15楼hzzasdf的回复:
这个本质上是调用微软的JScript解释引擎来解释执行javascript,个别方法不支持,如alert
我这个类是我的CMS里用来做标签参数表达式值运算的。当然不需要弹窗这类的。