在C#中能否执行Javascript代码并获得返回值?Javascript代码以字符串形式给出。注意是窗口程序,不是网页啊~~~
function encode(F, D) {
    var D = D,
    J = 0;
    var F = F;
    var M = "",
    C = "";
    var I = [],
    E = [];
    function L(Q, N, O) {
        for (var P = Q; P <= N; P++) {
            I[P] = P + O;
            E[P + O] = P
        }
    }
    L(0, 9, 48);
    L(10, 35, 55);
    L(36, 61, 61);
    var K = D % 26;
    K = K ? K: 1;
    function A(O) {
        var N = O.length;
        var Q = "";
        for (var P = 0; P < N; P++) {
            var R = O.charAt(P);
            if (/[A-Za-z0-9]/.test(R)) {
                var S = E[O.charCodeAt(P)] - K;
                if (S < 0) {
                    S += 62
                }
                R = String.fromCharCode(I[S])
            }
            Q += R
        }
        return Q
    }
    M = A(F);
    return M
}
string javaFunction=@"function encode(F, D) {
    var D = D,
    J = 0;
    var F = F;
    var M = """",
    C = """";
    var I = [],
    E = [];
    function L(Q, N, O) {
        for (var P = Q; P <= N; P++) {
            I[P] = P + O;
            E[P + O] = P
        }
    }
    L(0, 9, 48);
    L(10, 35, 55);
    L(36, 61, 61);
    var K = D % 26;
    K = K ? K: 1;
    function A(O) {
        var N = O.length;
        var Q = """";
        for (var P = 0; P < N; P++) {
            var R = O.charAt(P);
            if (/[A-Za-z0-9]/.test(R)) {
                var S = E[O.charCodeAt(P)] - K;
                if (S < 0) {
                    S += 62
                }
                R = String.fromCharCode(I[S])
            }
            Q += R
        }
        return Q
    }
    M = A(F);
    return M
}";string retValue=XXXXObject.Execute(javaFunction,"erytu4353i345",2131);"erytu4353i345" 和 2131 是传给javascript函数的两个参数

解决方案 »

  1.   

    http://www.cnblogs.com/oyjj/archive/2011/08/10/2134269.html
    这里有.
      

  2.   

    可以,用Jint
    string json = JSONSerializer.Serialize<User>(new User { Name = "nonocast" });
    Console.WriteLine(json);string json2 = File.ReadAllText("./JSON/json2.js", Encoding.UTF8);
    string script = @"
    function Migrate(arg) {
    var obj = eval('(' + arg + ')');
    obj.Pwd = 'password';
    return JSON.stringify(obj);
    };return Migrate(content);";var result = new JintEngine().SetParameter("content", json).Run(json2 + script);
    Console.WriteLine(result);
    Javascript in CSharp