C#Winform中或控制台中调用javascript

非Web中调用javascript需要引用Interop.MSScriptControl.dll

实例:


此项目建立Javascript文件夹,存放javascript

Program.cs文件内容

        static void Main(string[] args)
        {
            String[] arr = new String[] { "" };

            RunScript("", arr, @"/Javascript/Test.js"); //要调用的js文件相对路径
        }

        /// <summary>
        /// 调用JavaScript 方法
        /// </summary>
        /// <param name="method">方法名</param>
        /// <param name="pars">方法参数</param>
        /// <param name="jspath">要调用方法的JavaScript文件路径</param>
        /// <returns></returns>
        public static object RunScript(string method, string[] pars, string jspath)
        {

            ScriptControlClass sc = new ScriptControlClass();
            sc.Language = "javascript";
            string javascript1 = readFile(jspath);
            sc.AddCode(javascript1);
            //string mainCons = method + "(" + temppars;
            //object obj = sc.Eval(javascript1);
            object obj = sc.Run("TestMethod", new object[] { }); //执行测试方法
            return obj;
        }

        private static string readFile(string jspath)
        {
            String path = AppDomain.CurrentDomain.BaseDirectory; //获取工作目录
            //FileStream file = File.Open(jspath,FileMode.Open);
            String fileContent = File.ReadAllText(path + jspath); //读取文件内容
            return fileContent;
        }

ScriptControlClass sc = new ScriptControlClass();
此注意将Interop.MSScriptControl.dll引用的属性嵌入互操作类型更改为false


Test.js内容:

function TestMethod() {
    //return 1 + 1;
    var str1 = '{ "name": "cxh", "sex": "man" }';
    var json = eval('(' + str1 + ')');
    return json.name;
}
此处原本想打算javascript文件中引入其他javascript,但是未找到相关方法,打算在代码中将jquery.js内容读出,并联合Test.js一起使用,但是此时报错,提示:“window未找到”,无法实现通过jqueryjson来转换string。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值