まあ、私はjavascriptの変数をたくさん持っています(私は他のページから取得しています)。 これを行うにはどうすればよいですか? 私はMicrosoft.Jscript
クラスを使用しており、あなたのメソッドは動作しています。C#を使用して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コード他のページから文字列として取得しています –
これは非常に珍しい環境です。質問を編集して説明することを強くお勧めします。 –