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