在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函数的两个参数
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函数的两个参数
这里有.
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