winform程序和Web页面数据交互
window.external.ShowMessage("和而后");
winform通知web页面:
是通过JS来传递数值的 ,
object[] objects = new object[1];
objects[0] = listBox1.SelectedValue + "," + adminId;
webBrowser1.Document.InvokeScript("Messageaa", objects); //选择webBrowser1这个控件下的页面,并调用Messageaa这个JS方法,虽然参数传object类型,但是JS只能认出文本。
web页面调用Winform方法:
是通过web页面的JS调用winform方法实现的:
1.类的头部必须加上 [System.Runtime.InteropServices.ComVisible(true)] 指定此列是对COM可见的(JS才能调用)
2.初始化时还要加上 webBrowser1.ObjectForScripting = this; 这个句话
3.window.external.ShowMessage("和而后"); //调用Winform里的ShowMessage方法
例:
后台:
/// <summary>
/// webBrowser控件 加载完成后触发
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
object[] objects = new object[1];
objects[0] = adminId;
webBrowser1.Document.InvokeScript("UpdateServiceState", objects);
webBrowser1.ObjectForScripting = this;//注意这句话,否则JS调不回来
}
Web前台:
//修改客服是否在线的状态
function UpdateServiceState(adminId) {
$.post("Ajax/CustomerServiceAjax.ashx", { "Type": "5", "status": "1", "AdminUserID": adminId }, function(data) {
window.external.CustomerServiceState(data);
});
}
浙公网安备 33010602011771号