博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解JS回调函数
阅读量:6906 次
发布时间:2019-06-27

本文共 1963 字,大约阅读时间需要 6 分钟。

我们经常会用到客户端与Web项目结合开发的需求,那么这样就会涉及到在客户端执行前台动态脚本函数,也就是函数回调,本文举例来说明回调函数的过程。

首先创建了一个Web项目,很简单的一个页面,只有一个button与textbox,代码与效果如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebTest.Default" %>                         

 

CheckUser:表示客户端的一个方法。

CallBackFun:表示客户端回调的函数。

在btnTest的点击事件里面执行客户端的CheckUser方法,客户端回调CallBackFun函数的时候,给ID为txtValue的文本框进行赋值,赋值内容则是从回调函数中返回的内容。

 

下面创建一个客户端程序,界面也很简单,仅有一个webBrowser1按钮,代码与界面如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Security.Permissions;namespace WindowsFormsApplication1{    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]    [System.Runtime.InteropServices.ComVisibleAttribute(true)]    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        public WebBrowser Browser { get { return this.webBrowser1; } }        private void Form1_Load(object sender, EventArgs e)        {            webBrowser1.ObjectForScripting = this;            webBrowser1.Navigate("http://localhost:8008/default.aspx");                    }        public void CheckUser()        {            WindowsFormsApplication1.Comm.Global.Main = this;            bool result=true;             /*             * 这之间可以实现任意的逻辑,最后将结果赋值给result即可             *              *              */            if (result) //判断结果            {                 WindowsFormsApplication1.Comm.Global.Main.Invoke(new MethodInvoker(delegate()                 {                    WindowsFormsApplication1.Comm.Global.Main.Browser.Document.InvokeScript("CallBackFun", new object[] { "777" });                }));            }        }    }}

 

 

)为我本地电脑的IIS站点。

我们通过webBrowser1的InvokeScript方法来进行回调函数CallBackFun,返回的是一个object对象,这里返回“777”字符串。

运行之后,点击按钮,效果如下:

可以看出来,客户端已经成功回调了函数CallBackFun,并且已经将客户端的返回值“777”传递给了前台。

 

如果您觉得有用,请帮忙顶一下,谢谢!!

 

转载地址:http://hjgdl.baihongyu.com/

你可能感兴趣的文章
C++ Internals: STL之Map
查看>>
JQuery中$.ajax()方法参数详解(转载)
查看>>
汇编程序:按键松开时中断的处理
查看>>
统计一个网段以及相应区段存活和宕机的ip
查看>>
Mysql 通过全量备份和binlog恢复整体数据
查看>>
单点登录
查看>>
jQuery Template 简单使用
查看>>
Internet路由之路由表查找算法概述-哈希/LC-Trie树/256-way-mtrie树
查看>>
Centos网络管理(四)-路由转发与静态路由
查看>>
企业数据囤积是小事?Veritas的《数据囤积报告》告诉你千万别小看这些风险
查看>>
python链接mysql常见问题汇总
查看>>
UDP"打洞"原理
查看>>
cannot restore segment prot after reloc: Permission denied
查看>>
Cisco设备初始基本操作流程
查看>>
开发者必备的火狐插件
查看>>
Samba再报安全漏洞
查看>>
sql语句函数
查看>>
.NET简谈自定义事务资源管理器
查看>>
Linux-HA开源软件Heartbeat(安装篇)
查看>>
cocos2d-x游戏例子01:是男人就坚持20秒(WIN32)
查看>>