日期:2014-05-17 浏览次数:20888 次
//利用JS中强大的Eval函数 可以带if-else判断 添加COM引用:Microsoft Sctipt Control 1.0
//但这个方法在2003 64位服务器版本里没法用,求解决办法
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
sc.Language = "JavaScript";
string formulate1 = string.Format("if({0}==2)((({0}*{1})-{3}+({1}*{2}))+{4}/{0});else(1+2*3)", 2, 3, 4, 5, 6);
object objResult = sc.Eval(formulate1);
if (objResult != null)
{
Response.Write(objResult.ToString());//1+12+3
}
string formulate1 = string.Format("if({0}==2)((({0}*{1})-{3}+({1}*{2}))+{4}/{0});else(1+2*3)", 2, 3, 4, 5, 6);
string ExecEval=@"<script language='javascript' type='text/javascript'>
function execEval(para){
return eval(para);
}</script>";//定义脚本
WebBrowser wb = new WebBrowser();
wb.DocumentText = @"<html> <head>" + ExecEval + "</head><body></body></html>";//定义WebBrowser中的DOM文档
wb.DocumentCompleted+=(o,args)=>{
var temp=wb.Document.InvokeScript("execEval",new object[]{formulate1});//执行脚本函数
MessageBox.Show(temp.ToString());//弹出16
};