"我想可能是如果不加alert,层还没有加载完的原因吧."既然你知道原因,那就按这个去解决问题啊,让脚本加载完再执行你要的事件!
如果是XMLHTTP,建议使用异步加载方式进行处理!

解决方案 »

  1.   

    如果是嵌入页面的脚本,有两种办法,1 加 defer 属性,即:<script type="text/javascript" defer>...2 调整代码位置,放到 </body> 之前,即 ...</script></body>LZ 自选!
      

  2.   

    to 
    yixianggao(你我他,三人行必有我师焉!) 我是在服务器端用ScriptManager.RegisterStartUpScript注册的.
    可是不用alert就不行,
    怎么样在服务器端把js注册到你说的位置阿
      

  3.   

    ClientScriptManager.RegisterStartupScript Method (Type, String, String) The script block added by the RegisterStartupScript method executes when the page finishes loading but before the page's OnLoad event is raised.看来不是位置的问题,是不是用了 iframe 或 frame 什么的?LZ 到底想实现什么效果,并且把脚本代码和 html 页面代码贴出来看看!大家帮你分析分析!
      

  4.   

    to yixianggao(你我他,三人行必有我师焉!) 以下是代码,代码的功能是用一个div将另外一个div盖住,但是当被盖住的div有滚动条时,不能把滚动条也盖住。这里的代码包含两种实现方式:
    第一种是通过Ajax的ScriptManager.RegisterStartUpScript来调用,这种调用能够使div可见,但是把滚动条也盖住了,说明代码执行时滚动条还没有出现。
    第二种是用ajax的EndRequest来调用,也是一样,能够使div可见,但是把滚动条也盖住了,说明代码执行时滚动条还没有出现。在第二种方法中,如果在调整div大小前调用一下alert,执行的时候点击完alert确定按钮之后,滚动条就不被盖住了,说明执行有效了。现在不想出现alert,该如何才能实现这个功能哪?
    谢谢
    ------------------------- <div id="divForContent" style="filter:alpha(opacity=0);width:503px;font:20;z-index:1000;background-color:#FF0000;position:absolute; left: 11px; top: 85px; height: 87px;"></div>   
    <script type="text/javascript">
    //这里是ajax的EndRequest事件
    function EndRequest (sender, args) 
    {
        if( postBackElement.id == document.getElementById("<%= tvItems.ClientID %>").id )
        {
             //fill the item content back into the divContent from server-side control.
             document.getElementById("divItemContent").innerHTML = document.getElementById("<%= txtContent.ClientID %>").value;
             
           divForItemContent.style.display = "block";//这句执行成功了
    //         alert(divItemContent.clientWidth);         divForItemContent.style.width = divItemContent.clientWidth;
             divForItemContent.style.height = divItemContent.clientHeight;     }
    }//自己写的函数
    function ShowDivForContent()
    {
        divForItemContent.style.display = "block";
        divItemContent.style.borderColor = "#000000";
             divForItemContent.style.width = divItemContent.clientWidth;
             divForItemContent.style.height = divItemContent.clientHeight; 
    }
    </script><script runat="server">
      ScriptManager.RegisterStartupScript(UpdatePanel4, this.GetType(), DateTime.Now.ToString(), "ShowDivForContent();", true);
    </script>
      

  5.   

    divForContent —— htmldivItemContent —— JSdivForItemContent —— JS怎么是三个 div ?请把 html 代码贴完全!document.getElementById("divItemContent").innerHTML = document.getElementById("<%= txtContent.ClientID %>").value;document.getElementById("<%= txtContent.ClientID %>").value; ——内容很多么?具体内容是什么?似乎就是加载的问题!
      

  6.   

    打错了,
    divForContent应该是divForItemContent
    共有两个div: divItemContent 和 divForItemContent .
    所以这句应该是:
    <div id="divForItemContent" style="filter:alpha(opacity=0);width:503px;font:20;z-index:1000;background-color:#FF0000;position:absolute; left: 11px; top: 85px; height: 87px;"></div>   
    ---------------------------------------------------------------------------
    这句话:
    document.getElementById("divItemContent").innerHTML = document.getElementById("<%= txtContent.ClientID %>").value;是把服务器端的TextBox的内容复制到客户端的div中.
    要复制的内容很多,具体的内容是Html格式的内容,可能包含文本,图片,链接等.
    最长可能达到几万字.Html的代码太长,而且与其他页面关联.不知道上述信息是否足够,谢谢
      

  7.   

    用divForItemContent盖住divItemContent
      

  8.   

    只能用延时了,没找到有什么事件可用!写了个例子,如果不调用延时函数,而是直接执行 resizeDiv 里的两句话就会遮住右侧滚动条,例子中延时 100 毫秒后能自动调整了,如 LZ 所愿!仅仅是实现了功能,但原理还不十分清楚,暂且解释为加载延时吧,时长只能凭经验估计了,
    因为找不到事件!大家都来说说!
    代码如下,LZ 更具自己的情况改改吧: <body>
      <div id="divForItemContent" style="filter:alpha(opacity=50);width:500px; height: 100px; font:20;z-index:1000;background-color:#FF0000; position:absolute; left: 11px; top: 85px;"></div>  <div id="divItemContent" style="overflow: auto; width:500px; height: 100px; font:20;z-index:999;background-color:#0000ff;position:absolute; left: 11px; top: 85px;">
      </div>  <script type="text/javascript">
      <!--
        divItemContent.innerHTML = "<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />";
        
        // 延时时段,单位 毫秒,1秒=1000毫秒。
        var delayInterval = 100;
        window.setTimeout(resizeDiv, delayInterval);
        function resizeDiv()
        {
            divForItemContent.style.width = divItemContent.clientWidth;
            divForItemContent.style.height = divItemContent.clientHeight; 
        }
      //-->
      </script>
     </body>
      

  9.   

    好用了,谢谢
    yixianggao(你我他,三人行必有我师焉!) ( ) 信誉:100    Blog   加为好友