前台:<script type= "text/javascript"> 
document.getElementById("url").value=parent.location.href;
</script><input runat="server" id="url" type="hidden" value="" />
后台:string ss=this.url.Value.ToString();
问题出现了,为何获取不了 url 的值?错在哪?

解决方案 »

  1.   

    那这种情况我该怎么修改才能获得url的值?
      

  2.   

    <input runat="server" id="url" style="display:none" value="" />
      

  3.   

    <script type= "text/javascript"> 
    document.getElementById("url").value=parent.location.href;
    </script><input runat="server" id="url" type="hidden" value="" />
    这样肯定是无法赋值的,请注意一下页面元素的先后顺序,你上面的代码,页面打开时先执行那段客户端脚本,这时候你的input元素还没呈现呢,document.getElementById("url")根本就取不到任何值,当然无法赋值了,解决这个办法很简单,一种是把脚本中的代码写成一个函数,在页面的onload事件中调用,另外一种方法是把脚本移到<input ..>代码之后,象这样:
    <input runat="server" id="url" type="hidden" value="" /><script type= "text/javascript"> 
    document.getElementById("url").value=parent.location.href;
    </script>
      

  4.   

    <input runat="server" id="url" style="display:none" value="" /> <script type= "text/javascript"> 
    document.getElementById("url").value=parent.location.href;
    </script>
    注意顺序
      

  5.   


    对 就是这样的。
    但是我怎么得到的url还是空的,是不是document.getElementById("url").value=parent.location.href; 没有把变量赋给url?
      

  6.   

    html是顺序解析的。
    你的js写在元素之前。
    当调用的时候这个元素还没有呢。。改一下
    <script type= "text/javascript"> 
    window.onload = function(){
    document.getElementById("url").value=parent.location.href;
    }
    </script><input runat="server" id="url" type="hidden" value="" />
      

  7.   

    但是我怎么得到的url还是空的,是不是document.getElementById("url").value=parent.location.href; 没有把变量赋给url?
    =============>
    看看客户端打开页面后的源文件中这个隐藏文本框的id还是不是url了?如果你使用了masterpage,或者你的控件在用户控件或其它模板控件中,那么它的服务器端ID不一定就和客户端ID一样,要获取得某个服务器控件的客户端ID,应该用ClientID属性,象这样:document.getElementById("<%=url.ClientID%>").value=parent.location.href;