javascript与asp.net(c#)互相调用方法


Posted in Javascript onDecember 13, 2009

1、获得aspx客户端请求地址:

<a src= 'http://<%=Request.Url.Host %><%= ResolveUrl("../PayCenter/AlipayAdd.aspx")%>'>地址</a>

2、C#调用客户端方法:(top.window.document:表父窗体,如果是MainFrame对象在本窗体中,则不加top.window.document)
Js中的方法:

function navurl(url) { 
$("#mainFrame",top.window.document).attr("src", url); 
}

C#调用:

string navUrl = "javascript:navurl('" + "http://" + Request.Url.Host + ResolveUrl("../Document/callIndex.aspx?FolderId="); 
DocName.NavigateUrl = navUrl + txtDocId.Value.Trim() + "')";

3. C#调用客户端方法:

page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript'>alert('" + msg.ToString() + "');</script>");

下面要解决的问题如下:
1.如何在JavaScript访问C#函数?

2.如何在JavaScript访问C#变量?

3.如何在C#中访问JavaScript的已有变量?

4.如何在C#中访问JavaScript函数?

问题1答案如下:

javaScript函数中执行C#代码中的函数:

方法一:
1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;

2、在前台写一个js函数,内容为document.getElementById("btn1").click();

3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:
1、函数声明为public

后台代码(把public改成protected也可以)
public string ss()

{

return("a");

}

2、在 html 里用可以调用前台脚本
<script language=javascript>

var a = "<%=ss()%>";

alert(a);
</script>

方法三:
<script language="javascript">

<!--

function __doPostBack(eventTarget, eventArgument)

{

var theForm = document.Form1; //指runat=server的form

theForm.__EVENTTARGET.value = eventTarget;

theFrom.__EVENTARGUMENT.value = eventArgument;

theForm.submit();

}

-->

</script>

<input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">

方法四:
<script language="javascript">

function SubmitKeyClick()

{

if (event.keyCode == 13)

{

event.cancelBubble = true;

event.returnValue = false;

document.all.FunName.value="你要调用的函数名";

document.form[0].submit();

}

}

</script>

<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">

<input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉

在.CS里有:
public Page_OnLoad()

{

if (!Page.IsPost())

{

string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";

//根据传回来的值决定调用哪个函数

switch(strFunName)

{

case "enter()":

enter() ; //调用该函数

break;

case "其他":

//调用其他函数

break;

default:

//调用默认函数

break;

}

}

}

public void enter()

{

//……比如计算某值

}


问题2.如何在JavaScript访问C#变量?

答案如下:

方法一:1、通过页面上隐藏域访问 <input id="xx" type="hidden" runat="server">


方法二:1、如后台定义了PUBLIC STRING N; 前台js中引用该变量的格式为''或"++"


方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本
"<script language='javascript'>var temp=" + tmp + "</script>"

tmp是后台变量,然后js中可以直接访问temp获得值。


问题3.如何在C#中访问JavaScript的已有变量?

答案如下:

方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;2、后台用request["id"]来获取值;

方法二:可以用cookie或session


问题4.如何在C#中访问JavaScript函数?

答案如下:

c#代码中执行javaScript函数:

方法一:1、
Page.RegisterStartupScript("ggg"," ");

方法二:使用Literal类,然后
private void Button2_Click(object sender, System.EventArgs e)

{

string str;

str=" ";

//Literal1.Visible=true;

Literal1.Text=str;

}

Javascript 相关文章推荐
jquery UI 1.72 之datepicker
Dec 29 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
浅析XMLHttpRequest的缓存问题
Dec 13 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
JavaScript实现网页加载进度条代码超简单
Sep 21 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 Javascript
原生js编写autoComplete插件
Apr 13 Javascript
Node.js的特点详解
Feb 03 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
Mar 22 Javascript
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
微信小程序实现导航栏选项卡效果
Jun 19 Javascript
加速vue组件渲染之性能优化
Apr 09 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 #Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 #Javascript
页面中iframe相互传值传参
Dec 13 #Javascript
jquery提示 &quot;object expected&quot;的解决方法
Dec 13 #Javascript
js 加载并解析XML字符串的代码
Dec 13 #Javascript
javascript 强制刷新页面的实现代码
Dec 13 #Javascript
ExtJS下grid的一些属性说明
Dec 13 #Javascript
You might like
php木马webshell扫描器代码
2012/01/25 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
jquery实现pager控件示例
2014/04/09 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
Vue的移动端多图上传插件vue-easy-uploader的示例代码
2017/11/27 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
python线程池threadpool使用篇
2018/04/27 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
营业经理岗位职责
2013/11/10 职场文书
材料物理专业求职信
2014/09/01 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
兴趣班停课通知
2015/04/24 职场文书
新年祝酒词大全
2015/08/11 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
Java如何实现树的同构?
2021/06/22 Java/Android
如何利用python实现Simhash算法
2022/06/28 Python