1. 程式人生 > >C#使用技巧之呼叫JS指令碼方法一

C#使用技巧之呼叫JS指令碼方法一

原文地址:http://www.cnblogs.com/xdpxyxy/archive/2013/06/11/3132097.html

有時候我們需要在C#中直接呼叫js方法,這是完全沒問題的。當然,我們也可以把js程式碼轉化為C#,然後在C#中執行,但是這個就得花時間了~~下面我給大家介紹下一種直接在C#中呼叫JS檔案的方法。

0、貼個效果圖

1、建立個Winform專案。

2、在From1上增加一個文字框一個按鈕。

3、在解決方案中建立一個test.js檔案。

test.js程式碼如下:
function sayHello(str) {
    return "Hello," + str;
}

4、進入Form1.cs編碼後臺程式碼。

Form1.cs程式碼如下:
private void button1_Click(object sender, EventArgs e)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + "test.js";
            string str2 = File.ReadAllText(path);

            string fun = string.Format(@"sayHello('{0}')" ,this.textBox1.Text.Trim());
            string result = ExecuteScript(fun, str2);

            MessageBox.Show(result);
        }

        /// <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;
        }

5、測試

效果圖如第0步。

注:在後臺程式碼中如果找不到名稱空間:MSScriptControl.ScriptControl,請參照下圖增加引用。

專案->新增引用: