【发布时间】:2011-10-10 01:56:47
【问题描述】:
嗯,我在 javascript 中有很多变量,我需要获取值(我从其他页面获取)。
最好的方法是什么?
我正在使用 Microsoft.Jscript 类,你的方法可以工作。
我写了以下代码:
static Dictionary<string, string> ParseVariables(string code)
{
string[] variables = code.Split(';');
Dictionary<string, string> variablesValues = new Dictionary<string, string>();
for (int i = 0, len = variables.Length - 1; i < len; i++)
{
string vvar = variables[i];
string varName = Regex.Replace(vvar.Split('=')[0], @"^\s*var\s*", string.Empty).Trim();
var compiler = Compile(vvar);
string varValue = compiler.ToString();
variablesValues.Add(varName, varValue);
}
return variablesValues;
}
static object Compile(string JSource)
{
return Microsoft.JScript.Eval.JScriptEvaluate(JSource, Microsoft.JScript.Vsa.VsaEngine.CreateEngine());
}
这适用于某些情况,例如:
var jscript = "var x = 'foo'; var y = 'baa';";
var output = ParseVariables(jscript);
var val = output["y"]; //baa
var val2 = output["x"]; //foo
但是对于这样的情况:
var jscript = "var x = {}; x['foo'] = 'baa'; x['baa'] = 'test';";
var output = ParseVariables(jscript);
var val = output["x['foo']"]; //not works
我该怎么做?任何帮助表示赞赏!谢谢!
【问题讨论】:
-
很不清楚你在问什么。这是一个 ASP.NET 页面吗?你说的 JavaScript 是在浏览器中运行的吗?
-
@Jonh:这是一个控制台应用程序吗?我从其他页面获取的 javascript 代码作为字符串
-
这是一个非常不寻常的环境。我强烈建议您通过编辑问题来描述它。
标签: c# javascript .net