页面放入 hiddenfield控件,使用js调用:
<script language="javascript">
function show()
{
var s=document.getElementById('<%=hid1.ClientID %>').value;
alert(s);
}
</script>用button的onclick事件,可以正常调用显示。现在需要在页面载入以后调用这个函数,hiddenfield控件中的值为一个img的src值;
在Page_Load中加入
this.Page.RegisterStartupScript("", " <script>show();</script>"); 问题出来了:调用的控件值为空;
我想,应该是aspx页面和js函数的载入顺序问题。请教高手:怎样解决?能详细说一下页面,控件,js函数的载入顺序更好。谢谢!

解决方案 »

  1.   

    前台不是有 onload="show() " 吗?自动加载
    后台Page_Load()中也可加Button1.Attributes.Add("onclick","return show();");
      

  2.   

    RegisterStartupScript(“”,“js代码块”)会将代码写入页面底部</body>前面,向你这样的写法,你会发现生成的html代码为:
    ...</div>
    <script>show();</script></form>现在主要看你<script language="javascript"> 
    function show() 

    var s=document.getElementById(' <%=hid1.ClientID %>').value; 
    alert(s); 

    </script> 
    代码块的位置了,如果在<script>show();</script></form>
    之后则无法找到函数,因为page_load在所有aspx执行之前执行你只要吧show函数放在aspx页面html最前面,比如放到<head></head>里就可以了!
      

  3.   

    因为有母版页。
    这个调用js函数的是子页面。子页面里面没有<html>和<body>之类的标签。在子页面载入时调用js函数,onload要写在哪里?
      

  4.   

    改成如下,是否可以:
    <script language="javascript"> 
    function show() 

    var s=document.getElementById(' <%=hid1.ClientID %>').value; 
    alert(s); 

    </script><body onload=show()>
      

  5.   


    因为子页面没有<head>标签,没法完全按照你的方法做。
    按你的思路,我把<script>脚本分别移动到顶,底,中间。
    结果不变。
      

  6.   

    不好意思我一开始没有说明清楚。这个是母版页里的子页。
    没有<body><html>之类的标签
    只有一个占位标签。
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
      

  7.   

    调用js的时候 那个控件必须加载完  , 所以必须在onload事件后才会取到值
      

  8.   

    我要实现的意图是:
    首先:在页面载入时,把一个值存到hiddenfield中(该值为img控件的src值);然后:通过js函数在div动态生成一个客户单img控件,并把src值赋值为hiddenfield 中参数的值.现在的问题是:在页面载入是调用的js函数取到的hiddenfield的值为空.为了验证是否是js代码问题,
    我在一个button的onclick也赋值了该js函数。
    就是说等页面完全载入后,
    然后点击button,可以正常取到值,img控件正常显示,js代码无误。所以我猜测是否是在页面控件没有载入完成时,就调用了js函数。不知是不是这个顺序问题。期待高手解决。
      

  9.   

    就是这个问题!因为是子页面,没有onload。
    请问如何解决。
    在子页面中,怎样让页面完全载入后才调用js函数。
      

  10.   

    就是这个问题!因为是子页面,没有onload。
    请问如何解决。
    在子页面中,怎样让页面完全载入后才调用js函数。
      

  11.   

    <script>show(); </script>直接写在HTML页面最后,不用ONLOAD也会执行