中怎么使用js变量?

时间:2021-05-28 05:34:45
我在JavaScript中,用了<%=fun();%>但是想加入参数,参数就是js变量。不知能怎么办?好像里面只能用后台代码的变量。

    <script type="text/javascript">
        function transfer(aid) {
            var status = "<%=transferMsg(aid) %>";
            if (status == 1) alert("转播成功");
            else alert("转播失败");
        }
        
    </script>

15 个解决方案

#1


ICallbackEventHandler 接口, xmlhttprequest对象

 string s= "";   
  public string GetCallbackResult()   
  {   
  return s;   
  }   
  public void RaiseCallbackEvent(String eventArgument)   
  {   
  }   
  protected void Page_Load(object sender, EventArgs e)   
  {   
  ClientScriptManager cm = Page.ClientScript;   
  String str= cm.GetCallbackEventReference(this, "arg", "ReceiveData", "");   
  String callbackScript = "function CallServer(arg, context) {" + str+ "; }";   
  cm.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);   
  }   

  <script type="text/javascript">   
  CallServer("");   
  function ReceiveData(arg, context) {   
  alert(arg)   
  } 

#2


正确的语法应该是:
var status = "<%=transferMsg("+aid+") %>";

但这种写法在页面加载的时候就执行了transferMsg(...)!

#3


这是工作在服务器端的asp语法,与浏览器端javascript根本是分隔在两重天中。你先搞清楚代码工作在服务器还是浏览器,然后才能分别使用不同的设计思路。

#5


引用 1 楼 wuyq11 的回复:
ICallbackEventHandler 接口, xmlhttprequest对象

 string s= "";  
  public string GetCallbackResult()  
  {  
  return s;  
  }  
  public void RaiseCallbackEvent(String eventArgument)  
  {  
  }……


二楼的大哥,你这个应该怎么用?
是加一个button,onclick事件为ReceiveData吗?

#6


引用 2 楼 koukoujiayi 的回复:
正确的语法应该是:
var status = "<%=transferMsg("+aid+") %>";

但这种写法在页面加载的时候就执行了transferMsg(...)!

这样的写法,会提示错误,因为代码页有一个transferMsg(int aid)。他就提示应该为int类型。

#7


引用 3 楼 sp1234 的回复:
这是工作在服务器端的asp语法,与浏览器端javascript根本是分隔在两重天中。你先搞清楚代码工作在服务器还是浏览器,然后才能分别使用不同的设计思路。

我是想要做微博中的转发、收藏功能。
转发和收藏都是用<a>转发</a>,<a>收藏</a>把这些和其他网页代码一起放到一个大的<div>中,然后用Ajax显示出来。
网上搜到用<%=%>可以引用代码页的代码,我在代码页中自定义了transferMsg(int aid)函数,想调用这个函数。就用了上面这个方法,是否有更好的方法实现?

#8


引用 6 楼 zexin1000 的回复:
这样的写法,会提示错误,因为代码页有一个transferMsg(int aid)。他就提示应该为int类型。

改成string就没问题!

#9


运行在服务器端的代码怎么可能会知道要执行完才输出到浏览器的javascript是什么东西...

#10


引用 9 楼 karascanvas 的回复:
运行在服务器端的代码怎么可能会知道要执行完才输出到浏览器的javascript是什么东西...


那就是说这种方法用在这里完全不可取啦?
不知微博中的转发等功能是怎么实现的?大家是否有例子可以给我看看。

#11


浏览器与服务器交互,要么用ajax,要么就得刷新页面来提交请求..

#12


Ajax吧,服务端值传给客户端是可以的,但客户端变量传给服务端,一般情况下,不POST或GET一下是不行的

#13


引用 12 楼 liyifeng20021 的回复:
Ajax吧,服务端值传给客户端是可以的,但客户端变量传给服务端,一般情况下,不POST或GET一下是不行的

不知大概可以怎么去实现?

#14


思路错误. 把需求贴出来.

#15


已经解决,没有使用上面的方法,使用ajax的方法

     function collect(aid) {
            $.ajax({
                type: "post",
                url: "collect.ashx",
                data: {
                    aid: encodeURIComponent(aid)
                },
                success: function (data, status) {
                    alert(data);
                },
                dataType: "jason"
            })
        }

#1


ICallbackEventHandler 接口, xmlhttprequest对象

 string s= "";   
  public string GetCallbackResult()   
  {   
  return s;   
  }   
  public void RaiseCallbackEvent(String eventArgument)   
  {   
  }   
  protected void Page_Load(object sender, EventArgs e)   
  {   
  ClientScriptManager cm = Page.ClientScript;   
  String str= cm.GetCallbackEventReference(this, "arg", "ReceiveData", "");   
  String callbackScript = "function CallServer(arg, context) {" + str+ "; }";   
  cm.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);   
  }   

  <script type="text/javascript">   
  CallServer("");   
  function ReceiveData(arg, context) {   
  alert(arg)   
  } 

#2


正确的语法应该是:
var status = "<%=transferMsg("+aid+") %>";

但这种写法在页面加载的时候就执行了transferMsg(...)!

#3


这是工作在服务器端的asp语法,与浏览器端javascript根本是分隔在两重天中。你先搞清楚代码工作在服务器还是浏览器,然后才能分别使用不同的设计思路。

#4


#5


引用 1 楼 wuyq11 的回复:
ICallbackEventHandler 接口, xmlhttprequest对象

 string s= "";  
  public string GetCallbackResult()  
  {  
  return s;  
  }  
  public void RaiseCallbackEvent(String eventArgument)  
  {  
  }……


二楼的大哥,你这个应该怎么用?
是加一个button,onclick事件为ReceiveData吗?

#6


引用 2 楼 koukoujiayi 的回复:
正确的语法应该是:
var status = "<%=transferMsg("+aid+") %>";

但这种写法在页面加载的时候就执行了transferMsg(...)!

这样的写法,会提示错误,因为代码页有一个transferMsg(int aid)。他就提示应该为int类型。

#7


引用 3 楼 sp1234 的回复:
这是工作在服务器端的asp语法,与浏览器端javascript根本是分隔在两重天中。你先搞清楚代码工作在服务器还是浏览器,然后才能分别使用不同的设计思路。

我是想要做微博中的转发、收藏功能。
转发和收藏都是用<a>转发</a>,<a>收藏</a>把这些和其他网页代码一起放到一个大的<div>中,然后用Ajax显示出来。
网上搜到用<%=%>可以引用代码页的代码,我在代码页中自定义了transferMsg(int aid)函数,想调用这个函数。就用了上面这个方法,是否有更好的方法实现?

#8


引用 6 楼 zexin1000 的回复:
这样的写法,会提示错误,因为代码页有一个transferMsg(int aid)。他就提示应该为int类型。

改成string就没问题!

#9


运行在服务器端的代码怎么可能会知道要执行完才输出到浏览器的javascript是什么东西...

#10


引用 9 楼 karascanvas 的回复:
运行在服务器端的代码怎么可能会知道要执行完才输出到浏览器的javascript是什么东西...


那就是说这种方法用在这里完全不可取啦?
不知微博中的转发等功能是怎么实现的?大家是否有例子可以给我看看。

#11


浏览器与服务器交互,要么用ajax,要么就得刷新页面来提交请求..

#12


Ajax吧,服务端值传给客户端是可以的,但客户端变量传给服务端,一般情况下,不POST或GET一下是不行的

#13


引用 12 楼 liyifeng20021 的回复:
Ajax吧,服务端值传给客户端是可以的,但客户端变量传给服务端,一般情况下,不POST或GET一下是不行的

不知大概可以怎么去实现?

#14


思路错误. 把需求贴出来.

#15


已经解决,没有使用上面的方法,使用ajax的方法

     function collect(aid) {
            $.ajax({
                type: "post",
                url: "collect.ashx",
                data: {
                    aid: encodeURIComponent(aid)
                },
                success: function (data, status) {
                    alert(data);
                },
                dataType: "jason"
            })
        }