C#论坛-玄机论坛-C#论坛-玄机宝盒-玄机类库-C#

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3259|回复: 10

[番外系列] 玄机论坛C#培训课程-番外篇之C#Winform调用JS

[复制链接]
  • TA的每日心情
    慵懒
    2018-8-14 22:07
  • 签到天数: 84 天

    [LV.6]【武林翘楚】

    君临 发表于 2014-10-29 23:36:58 | 显示全部楼层 |阅读模式

    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    如有疑问,请加入官方群询问

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    番外篇之Js调用玄机网番外篇之C#Winform调用JS
    执行JSJavascript)方法
             课前知识储备:
                                                   1JS代码放置的位置。
             方法一: 使用微软官方组件Interop.MSScriptControl
                ScriptControlClass sc = new ScriptControlClass();//申明变量
               sc.UseSafeSubset = true; //允许执行不安全的代码
               sc.Language = "JScript"; //VBScript
               sc.AddCode(Properties.Resources.GetTimes);// Properties.Resources 资源文件
                                   要执行的方法名,执行的参数/如果无参那么就写方法名
               string str = sc.Run("time", newobject[] { "time()"}).ToString();
    //特别注意
    JS方法中无参数时,这时传递的为该方法名称.
    弊端:
                  必须携带DLL.
                  不支持x64 .
    区别:    方法一需要DLL,方法二反射的方法是不需要DLL的.
    方法一不支持X64,方法二支持.
    方法二在需要参数是字符串时,必须要使用 ”’”引号包起来.方法一则不用
    方法二:  利用反射获取组件
           /// <summary>
            /// 获取JS时间戳 13
            /// </summary>
            /// <returns></returns>
            public stringGetTimeByJs()
            {
               Type obj = Type.GetTypeFromProgID("ScriptControl");
               if (obj == null)return null;
               object ScriptControl = Activator.CreateInstance(obj);
               obj.InvokeMember("Language",BindingFlags.SetProperty, null, ScriptControl, newobject[] { "JScript"});
               string js = "functiontime(){return new Date().getTime()}";
               obj.InvokeMember("AddCode",BindingFlags.InvokeMethod, null, ScriptControl, newobject[] { js });
               return obj.InvokeMember("Eval", BindingFlags.InvokeMethod,null, ScriptControl, newobject[] { "time()"}).ToString();
            }


    不得不说的方法:
               在环境变量里面-系统变量-path-点编辑,在末尾添加";.netframework(注意编译版本)绝对路径"注意前面还有个分号,系统变量中不能有中文,空格..O了.直接cmd jec 调用编译就可以了. 例如:"jsc /t:library xxx.js"

    如遇到以下错误
    QQ图片20160630162729.png
    解决方案:
    项目的引用中 , 选择 Interop.MSScriptControl  右键 属性 菜单
    1.png

    嵌入互操作类型  设置为  false

    2.png
    玄机网 C#Winform调用JS详解
    视频下载地址   http://pan.baidu.com/s/1gdAFesb

    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    该用户从未签到

    老段啦 发表于 2014-10-31 09:22:10 | 显示全部楼层
    今天看COM对象的封装  很多都问题迎刃而解
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    老段啦 发表于 2014-10-30 15:10:29 | 显示全部楼层
    现在还没啥问题,晚上的好好看看  
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-10 13:24
  • 签到天数: 1 天

    [LV.1]【初入江湖】

    我是MT 发表于 2014-10-31 04:21:33 | 显示全部楼层
    牛逼,高清晰作品,不错。
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    老段啦 发表于 2014-10-31 09:15:27 | 显示全部楼层
    讲的太好了
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-21 23:53
  • 签到天数: 6 天

    [LV.2]【绿林好汉】

    lcylcyll 发表于 2014-11-3 02:27:07 | 显示全部楼层
    直接调用JS可不可以呢??
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2018-8-14 22:07
  • 签到天数: 84 天

    [LV.6]【武林翘楚】

     楼主| 君临 发表于 2014-11-3 23:30:20 | 显示全部楼层
    lcylcyll 发表于 2014-11-3 02:27
    直接调用JS可不可以呢??

    webbrowser可以.但是winform需要有东西来解释执行
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-3-7 10:46
  • 签到天数: 4 天

    [LV.2]【绿林好汉】

    inghot 发表于 2014-11-4 09:08:17 | 显示全部楼层
    这个搞HTTP这些的很是用得着啊。。能省去好多工作量。。
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-10-5 17:41
  • 签到天数: 1 天

    [LV.1]【初入江湖】

    Solo 发表于 2014-11-6 21:40:49 | 显示全部楼层
    我来了,晚上开始学习这门课程了。加油~!
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 08:27
  • 签到天数: 9 天

    [LV.3]【仗剑天涯】

    milest 发表于 2015-2-12 09:50:06 | 显示全部楼层
    支持
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    QQ|Archiver|手机版|小黑屋|玄机论坛   

    GMT+8, 2018-10-21 21:30 , Processed in 0.686961 second(s), 29 queries .

    Powered by Msdn5.com

    © 2014-2015 Msdn5 Inc.

    快速回复 返回顶部 返回列表