当前位置: 代码迷 >> ASP.NET >> 使用Response.Write("<script>")无法获取客户端对象,多谢
  详细解决方案

使用Response.Write("<script>")无法获取客户端对象,多谢

热度:5432   发布时间:2013-02-26 00:00:00.0
使用Response.Write("<script>....")无法获取客户端对象,谢谢!
使用Response.Write( " <script> .... ")
或者RegisterClientScriptBlock
或者RegisterStartupScript

都无法调用var   obj=document.getElementByID( "id ")
最后obj都是空,怎么办,是位置不对吗?

谢谢!

------解决方案--------------------------------------------------------
05里面这样写
document.getElementByID( " <%=服务器控件id.ClientID %> ")
------解决方案--------------------------------------------------------
Response.Write( " <script> var obj=document.getElementByID( ' "+textBox.ClientID+ " ') </script> ")
------解决方案--------------------------------------------------------
Response.Write( " <script> ");输出在文件头部,一打开就执行。

RegisterClientScriptBlock一般返回的是客户端函数的包装,而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload= "f() "里面的函数;这两个方法在客户端呈现的代码位置不同,

RegisterClientScriptBlock在 <form runat=server> 之后,而RegisterStartupScript在 </form> 之前

用RegisterClientScriptBlock应该没有问题的

可以更改一下var obj=document.getElementByID( "id ")这儿的id为字符串,不要与关键字冲突


------解决方案--------------------------------------------------------
LS解释了一部分
Response.Write是肯定不行的
RegisterClientScriptBlock也不行
因为此时你要获取的控件还没有加载呢

RegisterStartupScript是可以的
------解决方案--------------------------------------------------------
学习!
------解决方案--------------------------------------------------------
楼主可参见我的文章
<后台调用前台javascript方法报错:“缺少对象”的解决方法>

http://www.cnblogs.com/heekui/archive/2007/02/08/644963


------解决方案--------------------------------------------------------
1.用RegisterStartupScript 2.检查id是否正确,用控件的clientID如 "document.getElementById( ' "+ txt1.ClientID+ " ') "
------解决方案--------------------------------------------------------
位置不对。客户端脚本如果放在head里面,会先执行。最好放在后面。
------解决方案--------------------------------------------------------
RegisterStartupScript
  相关解决方案