<script type="text/javascript" language="javascript" src="res://AlxRes.dll/SCRIPT/dsn.class.js"></script> 
<script type="text/javascript" language="javascript"> 
function doTryAlexa() 

try 

aborted(); 
return 1; 

catch(e) 

return 0; 


</script> 
----------------
能不能在后台调用到doTryAlexa() 这个函数的值,求解!

解决方案 »

  1.   

    加一个隐藏域
     <input id="hidId" runat="server" name="hidId" type="hidden" />
    然后再函数里写
    function doTryAlexa() 

    try 

    aborted(); 
    document.forms[0].hidId.value="1";} 
    catch(e) 

    document.forms[0].hidId.value="0";

    }
    在后台调用 Request.Form["hidId"]
      

  2.   

    在页面放置一个Hidden变量,提交之前把doTryAlexa() 这个函数的值存入这个Hidden变量
    然后就可以在后台使用了
      

  3.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server"> 
        <title>无标题页</title>
    <script type="text/javascript" language="javascript" src="res://AlxRes.dll/SCRIPT/dsn.class.js"></script> 
    <script type="text/javascript" language="javascript"> 
    function doTryAlexa() 

    try 

    aborted(); 
    document.forms1.hidId.value="1";} 
    catch(e) 

    document.forms1.hidId.value="0";


    </script> 
    </head>
    <body>
        <form id="form1" runat="server">
        <div> 
      <input id="hidId" runat="server" name="hidId" type="hidden" /> 
        </div>
        </form>
    </body>
    </html>-------------------
    后台:
     Response.Write(this.hidId.Value.ToString());对js不是很熟悉,麻烦大家帮帮忙!谢谢
      

  4.   

    这种方法比较好,另外就是利用ajax,在调用后台方法的时候将数据作为参数传过去..
      

  5.   

    后台不要写在page-load里面
    。。写在按钮触发事件里面,另外要确保它的执行在该js之后
      

  6.   

    先执行js再调用后台方法...Request.Form["hidId"]是可以取到的...
      

  7.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server"> 
        <title>无标题页</title>
    <script type="text/javascript" language="javascript" src="res://AlxRes.dll/SCRIPT/dsn.class.js"></script> 
    <script type="text/javascript" language="javascript"> 
    function doTryAlexa() 

    try 

    aborted(); 
    document.forms1.hidId.value="1";} 
    catch(e) 

    document.forms1.hidId.value="0";


    </script> 
    </head>
    <body>
        <form id="form1" runat="server">
        <div> 
      <input id="hidId" runat="server" name="hidId" type="hidden" /> 
    <script language=javascript>doTryAlexa();</script>
    关键是上面一句,你根本没有执行这个函数,怎么可能会有值呢???????????????
        </div>
        </form>
    </body>
    </html>
      

  8.   

    To youbl(水边):
    我进行了修改:<body onload="doTryAlexa()">
    不过还是不能获取到该值!!
      

  9.   

    To ustbwuyi() :我要浏览这个页面就执行获取该值,我试过按钮促发获取该值,可以得到!
    写在page-load里面
    获取的值为空!
      

  10.   

    写在pageload里面当然为空了,你js函数还没执行,还没给hidden赋值
      

  11.   

    不知道是什么需求,看看我这种方法应该可以解决:
     function ustbwuyi()
     {
      document.getElementById("hidden1").value="add";
      if(document.getElementById("title").value=="")
      {
       alert("请输入新闻的标题!");
       return false;
      }
      else if(document.getElementById("content").value==""){
       alert("请输入新闻的内容!");
       return false;
       }
       else {
       
       }
     }
    function doTryAlexa() 

    try 

    aborted(); 
    document.getElementById("hidden1").value="return1";  //返回的值,通过这种方法将返回值发送到后台,重新提交
     window.Form1.method="POST";
     window.Form1.submit();} 
    catch(e) 

    return 0; 


      

  12.   

    前面的不要,只要这个就可以了
    function doTryAlexa() 

    try 

    aborted(); 
    document.getElementById("hidden1").value="aaa";  
    document.getElementById("hidden2").value="return1"; ////返回的值,通过这种方法将返回值发送到后台,重新提交 window.Form1.method="POST";
     window.Form1.submit();} 
    catch(e) 

    return 0; 

    } 后台:
    在pageload里面:
    if(Request.RequestType=="POST")
    {
    if(Request.Form["hidden1"].ToString()=="aaa")
    {
     Request.Form["hidden2"] //就可以获取到了 }
     
    }
      

  13.   

    首先要明确执行顺序的问题
    先执行的是客户端的东西,然后他才submit到后台,如果想要C#得到前端的一个JS得出的变量
    那么这JS肯定是在submit之前执行过的,所以一楼的方法是可取的,加一个隐藏于,先把数值放进去,最后在submit,也就是你说点击的后台控件button.
      

  14.   

    说到底是个顺序的问题.执行的顺序是先
    服务器然后客户端如果第一次就要取到值应该不太可能,除非,在另一个界面就调用js,生成这个值,然后做为参数传到这个页面.如:在这前的页面得到值window.location = "这个页面.aspx?参数="+值;
    然后在这个页面通过Request.QueryStirng["参数"]来取值.-----难免有错,错了莫怪.
      

  15.   

    要麼把function寫全,然後在page_load里調用Button1.Attributes.Add("onclick","doTryAlexa()");
      

  16.   

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server"> 
        <title>无标题页</title>
    <script type="text/javascript" language="javascript" src="res://AlxRes.dll/SCRIPT/dsn.class.js"></script> 
    <script type="text/javascript" language="javascript"> 
    function doTryAlexa() 

    try 

    aborted(); 
    document.getElementById("hidden1").value="aaa";  
    document.getElementById("hidden2").value="1"; ////返回的值,通过这种方法将返回值发送到后台,重新提交 window.Form1.method="POST";
     window.Form1.submit();} 
    catch(e) 

    return 0; 

    } </script> 
    </head>
    <body >
        <form id="form1" runat="server">
        <div> 
       <input id="hidden1"  runat="server" name="hidId" type="hidden" /> 
       <input id="hidden2"  runat="server" name="hidId" type="hidden" /> 
    </div>
        </form>
    </body>
    </html>----------
      protected void Page_Load(object sender, EventArgs e)
        {
            if(Request.RequestType=="POST")
    {
    if(Request.Form["hidden1"].ToString()=="aaa")
    {
    Response.Write(Request.Form["hidden2"]);  
                    }
     
    }    }
    ----------
    Request.RequestType=="Get",所以没有执行!
      

  17.   

    其实 ustbwuyi()  的方法也是需要两次的,
    第一次get,然后用脚本post然后取值,这和从页面上点击一个按纽没什么区别。lz的意思是get的时候就要得到值,所以说如果楼主不修改需求,
    唯一可行的方法是在另一个页面运行javascript然后传递参数打开这个页面。-----难免有错,错了莫怪.
      

  18.   

    楼上的,doTryAlexa这个JS函数根本没有执行,怎么可能获取到值,不过如果执行doTryAlexa这个函数的话,页面就会不断提交,呵呵,乱套了
      

  19.   

    这里错了
    <input id="hidden1"  runat="server" name="hidId" type="hidden" /> 
    <input id="hidden2"  runat="server" name="hidId" type="hidden" /> 
    在后台Request取html控件的值必须定义它的name属性,你改成
    <input id="hidden1"  name="hidden1" type="hidden" /> 
       <input id="hidden2" name="hidden2" type="hidden" /> 
    试试
      

  20.   

    cpp2017(幕白兄),能不能说清楚点,我还是有点糊涂!
      

  21.   

    To ustbwuyi():
    不行,我试了!
      

  22.   

    他的意思是如果你不修改需求只有这一种办法:
    如:在这前的页面得到值window.location = "这个页面.aspx?参数="+值;
    然后在这个页面通过Request.QueryStirng["参数"]来取值.
      

  23.   

    我要统计浏览者是否安装Alexa条,所以浏览者浏览就要执行获取值!
      

  24.   

    To cpp2017(幕白兄):
    能不能详细点,我还是有点不明白!谢谢