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) {
//可以对参数进行各种处理
}
四、页面js方法传值给客户端</script>
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"] + ","; }