1. 程式人生 > 其它 >winform下執行某JS指令碼

winform下執行某JS指令碼

我們知道,在Webform下面呼叫JS檔案是非常方便的,只需要在html檔案下面引入如下程式碼<script type="text/javascript" src="des.js"></script>即可呼叫JS檔案裡面的函式。但在Winform時,有時候我們也需要呼叫別人寫好的JS指令碼檔案,有人又說了,JS反正是開源的,程式碼都可以看得到,直接給翻譯過來就行了,但是如果JS內容很複雜,有些甚至進行了混淆,我們就很難翻譯了,直接呼叫就很有必要了。下面是完整的呼叫過程。

步驟如下:

1、首先在.NET環境下面,新增COM引用Microsoft Script Control1.0

2、編寫執行JS程式碼的方法,如下:

/// <summary>
/// 執行JS
/// </summary>
/// <param name="sExpression">引數體</param>
/// <param name="sCode">JavaScript程式碼的字串</param>
/// <returns></returns>
private string ExecuteScript(string sExpression, string sCode)
{
MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
scriptControl.UseSafeSubset = true;
scriptControl.Language = "JScript";
scriptControl.AddCode(sCode);
try
{
string str = scriptControl.Eval(sExpression).ToString();
return str;
}
catch (Exception ex)
{
string str = ex.Message;
}
return null;
}

3、呼叫如下:

string path = AppDomain.CurrentDomain.BaseDirectory + "des.js";
//載入js檔案的所有內容 儲存到變數str2中
string str2 = System.IO.File.ReadAllText(path);
//呼叫js方法,如果該js方法有引數,就傳唄
string fun = string.Format(@"strEnc('{0}','{1}','{2}','{3}')",text, key, "", "");
//執行,並得到返回結果
string result = ExecuteScript(fun, str2);
return result;