winform与静态页面中交互总结

1、在winfrom页面中先拖一个webBrowser控件,

2、如果想要直接展示在线页面可直接在webBrowser中的url属性写上浏览器地址

3、如果想展示自己写的html则需要以下步骤

一、后台代码写上

        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
        [System.Runtime.InteropServices.ComVisibleAttribute(true)]  

二、  加载html页面
         webBrowser1.Navigate(new System.Uri(System.Windows.Forms.Application.StartupPath + @"\dex.html"));
         webBrowser1.ObjectForScripting = this;

三、客户端与js进行交互并对页面进行处理

           string[] objArray = new string[6];  

             objArray[0] = "参数";  
            objArray[1] = “参数"; 
            doc = webBrowser1.Document;
            if (webBrowser1.Document != null) { 
                doc.InvokeScript("setSeatsMap",objArray);     //即可调用静态页面中的setSeatsMap方法,其中objArray为参数
            }

其中静态页面中的方法接收参数时需要

<script type="text/javascript">
    //客户端调用的方法 
    function setSeatsMap(map, map3, row, seat, zuo) {
      //可以对参数进行各种处理
}
</script>

四、页面js方法传值给客户端

window.external.ShowOrderInfo(sc.find('selected').length + 1, recalculateTotal(sc) + price,JSON.stringify(OrderInfo));
//此方法意思就是调用客户端后台的ShowOrderInfo方法

 public void ShowOrderInfo(string Num, string TotlePrice,string OrderNumInfo) {
            this.lb_OrderSalePrice.Text = TotlePrice;
            this.tb_OrderBuyNum.Text = Num;   

         //其中OrderNumInfo为json格式的字符串
        }   

PS:

1、在调用页面的时候可能展示的结果与你直接在浏览器中打开静态页面的结果不同,这个时候需要指定在客户端中打开此静态页面的浏览器,需要在注册表中添加当前程序的浏览器内核

2、指定过后需要在静态页面中的头标签<head>中添加<meta http-equiv="X-UA-Compatible" content="IE=edge">



js声明键值对及数组方法

 var ss1 = {};
        for (var i = 0; i < t1.length; i++) {
            var ss22 = {};
            var seats1 = new Array();
            var s4 = new Array();  
            var s5 = new Array();
            seats1[i] = t1[i];    
            var s2 = seats1[i].split('/');  
            var s3 = s2[1].replace('{', '').replace('}', '')  
            var s4 = s3.split(',');
            for (var j = 0; j < s4.length; j++) {  
                s5 = s4[j].split(':');
                ss22[s5[0]] = s5[1]; 
          if (s5[0] == "classes" || s5[0] == "color") {
                    divs[s5[0]] = s5[1];
                }
            }
            ss1[s2[0]] = ss22; 
            style += divs["classes"] + "_" + divs["color"] + ","; 
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这个月太忙没时间看C++

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值