前台:<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 的值?错在哪?
document.getElementById("url").value=parent.location.href;
</script><input runat="server" id="url" type="hidden" value="" />
后台:string ss=this.url.Value.ToString();
问题出现了,为何获取不了 url 的值?错在哪?
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>
document.getElementById("url").value=parent.location.href;
</script>
注意顺序
对 就是这样的。
但是我怎么得到的url还是空的,是不是document.getElementById("url").value=parent.location.href; 没有把变量赋给url?
你的js写在元素之前。
当调用的时候这个元素还没有呢。。改一下
<script type= "text/javascript">
window.onload = function(){
document.getElementById("url").value=parent.location.href;
}
</script><input runat="server" id="url" type="hidden" value="" />
=============>
看看客户端打开页面后的源文件中这个隐藏文本框的id还是不是url了?如果你使用了masterpage,或者你的控件在用户控件或其它模板控件中,那么它的服务器端ID不一定就和客户端ID一样,要获取得某个服务器控件的客户端ID,应该用ClientID属性,象这样:document.getElementById("<%=url.ClientID%>").value=parent.location.href;