Javascript和C#之间的互相调用和访问
时间:2010-09-02 来源:开心无罪
这包括了JS调用c#方法,JS访问C#变量,C# 调用JS代码,C#访问JS变量的各种方法
JS代码:
<script language="javascript" type ="text/javascript" >
var JSVar = "This is JS Code ";
function getcsharpstring() {
//去调用c#的函数.www.qichepeijian.com,请注意带参数的写法
var mys = '<%=CSharpString("___________This is JS Code ")%>';
//没有参数的可以这样写var mys = "<%=CSharpString()%>";
alert(mys)
}
function getcsharpvar() {
var mys = '<%= CSharpVar%>';//调问c#中的变量
alert(mys)
}
//此函数用于C#调用
function CSharpCall() {
alert("这里设置一个ookie ");
//设置一个cookie ,在c#读取这个cookie的值来达到访问JS变量
document.cookie = "JSVarToCSharp= " + JSVar;
}
</script>
c#后台代码:
public partial class _Default : System.Web.UI.Page
{
public string CSharpVar = "这是CSharp代码";//C#变量
protected void Page_Load(object sender, EventArgs e)
{
}
//被JS调用
public string CSharpString(string _string )
{
return "这是CSharp代码" + _string ;
}
protected void Button3_Click(object sender, EventArgs e)
{
string jsString = "<script language=javascript > CSharpCall() </script>";
Page.RegisterStartupScript("ggg", jsString);//调用JS方法
}
protected void Button4_Click(object sender, EventArgs e)
{
//通过读取cookie 来得到JS的变量
HttpCookie cookie = Request.Cookies["JSVarToCSharp"];
if (cookie != null)
{
string jsVar = cookie.Value.ToString();
}
//可以用同样的方法让JS访问c#代码,如下
/*
c#(加) :
using System.Web
HttpCookie UserCookie = new HttpCookie("UserName",UserName);
Response.Cookies.Add(UserCookie);
(注销)
Request.Cookies.Clear();
//将Cookies["UserName"]置空
HttpCookie customerCookie = new HttpCookie("UserName", string.Empty);
Response.Cookies.Add(customerCookie);
JS:
function getCookie(objName)
{//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for(var i = 0;i < arrStr.length;i ++)
{
var temp = arrStr[i].split("=");
if(temp[0] == objName) return unescape(temp[1]);
}
}
function delCookie(name)
{//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=a; expires=" + date.toGMTString();
}
*/
}
}
以上两个,是同一个页面的一个是前台一个是后台