C#代码与javaScript函数的相互调用 (转)

简介: 1C#代码与javaScript函数的相互调用  2  3问:  41.如何在JavaScript访问C#函数?  52.如何在JavaScript访问C#变量?  63.如何在C#中访问JavaScript的已有变量?  74.
1 C#代码与javaScript函数的相互调用
  2
  3 问:
  4 1 .如何在JavaScript访问C#函数 ?
  5 2 .如何在JavaScript访问C#变量 ?
  6 3 .如何在C#中访问JavaScript的已有变量 ?
  7 4 .如何在C#中访问JavaScript函数 ?
  8  
  9 问题1答案如下:
 10 javaScript函数中执行C#代码中的函数:
 11 方法一: 1 、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
 12          2 、在前台写一个js函数,内容为document.getElementById( " btn1 " ).click();
 13          3 、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
 14
 15 方法二: 1 、函数声明为public              
 16            后台代码(把public改成protected也可以)
 17             public   string  ss()
 18             {
 19              return("a");
 20           }

 21          2 、在html里用 <%= fucntion() %> 可以调用
 22            前台脚本
 23             < script language = javascript >
 24            var a  =   " <%=ss()%> " ;
 25            alert(a);
 26             </ script >
 27 方法三: 1 < script language = " javascript " >
 28             <!--
 29            function __doPostBack(eventTarget, eventArgument)
 30             {
 31              var theForm = document.Form1;     //指runat=server的form
 32              theForm.__EVENTTARGET.value = eventTarget;
 33              theFrom.__EVENTARGUMENT.value = eventArgument;
 34              theForm.submit();
 35           }

 36             -->
 37             </ script >
 38             < input id = " Button1 "  type = " button "  name = " Button1 "  value = " 按钮 "  onclick = " javascript:__doPostBack('Button1','') " >
 39          
 40 方法四: < script language = " javascript " >
 41 function SubmitKeyClick()
 42 {
 43    if (event.keyCode == 13)
 44    {
 45        event.cancelBubble = true;
 46        event.returnValue = false;
 47        document.all.FunName.value="你要调用的函数名"
 48        document.form[0].submit();
 49    }

 50}

 51 </ script >
 52
 53 < INPUT onkeypress = " SubmitKeyClick() "  id = " aaa "  type = " text " >
 54 < input type = " hidden "  name = " FunName " >  〈! -- 用来存储你要调用的函数  --
 55
 56 在.CS里有:
 57 public  Page_OnLoad()
 58 {
 59if (!Page.IsPost())
 60{
 61string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
 62//根据传回来的值决定调用哪个函数
 63switch(strFunName)
 64{
 65case "enter()":
 66enter() ; //调用该函数
 67break;
 68case "其他":
 69//调用其他函数
 70break;
 71default:
 72//调用默认函数
 73break;
 74}

 75}

 76}

 77
 78 public   void  enter()
 79 {
 80//……比如计算某值
 81}

 82
 83 问题2.如何在JavaScript访问C#变量 ?
 84 答案如下:
 85 方法一: 1 、通过页面上隐藏域访问 < input id = " xx "  type = " hidden "  runat = " server " >
 86 方法二: 1 、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为 ' <%=n%> ' " +<%=n%>+ "
 87 方法三: 1 、或者你可以在服务器端变量赋值后在页面注册一段脚本
 88             " <script language='javascript'>var temp= "   +  tmp  +   " </script> "
 89            tmp是后台变量,然后js中可以直接访问temp获得值。
 90
 91
 92 问题 3 .如何在C#中访问JavaScript的已有变量 ?
 93
 94 答案如下:
 95
 96 方法一: 1 、前台使用静态文本控件隐藏域,将js变量值写入其中;
 97          2 、后台用request[ " id " ]来获取值;
 98
 99 方法二:可以用cookie或session
100
101
102 问题4 .如何在C#中访问JavaScript函数 ?
103 答案如下:
104 c#代码中执行javaScript函数:
105 方法一: 1 、Page.RegisterStartupScript( " ggg " , " <script>SetVisible(1);</script> " );
106 方法二:使用Literal类,然后
107 private   void  Button2_Click( object  sender, System.EventArgs e)
108 {
109 string str;
110 str="<script language='javascript'>";
111 str+="selectRange()";
112 str+="</script>";
113 //Literal1.Visible=true;
114 Literal1.Text=str;
115}

116
目录
相关文章
|
10月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
1213 27
|
8月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
10月前
|
JavaScript 前端开发 算法
流量分发代码实战|学会用JS控制用户访问路径
流量分发工具(Traffic Distributor),又称跳转器或负载均衡器,可通过JavaScript按预设规则将用户随机引导至不同网站,适用于SEO优化、广告投放、A/B测试等场景。本文分享一段不到百行的JS代码,实现智能、隐蔽的流量控制,并附完整示例与算法解析。
269 1
|
11月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
411 19
|
存储 JavaScript 前端开发
在NodeJS中使用npm包进行JS代码的混淆加密
总的来说,使用“javascript-obfuscator”包可以帮助我们在Node.js中轻松地混淆JavaScript代码。通过合理的配置,我们可以使混淆后的代码更难以理解,从而提高代码的保密性。
1250 9
|
11月前
|
JavaScript
JS代码的一些常用优化写法
JS代码的一些常用优化写法
196 0
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
988 11
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
移动开发 运维 供应链
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~