日期:2014-05-18  浏览次数:20378 次

Response.Write() 无法调用前台js脚本函数
为什么用Response.Write("<script>Publish(); </script>"); 无法调用前台js脚本函数.
只能用RegisterStartupScript("1","<script>Publish(); </script>")才可以,什么原因,有人遇到过这种情况吗

------解决方案--------------------
两个方法的原理不同,效果当然不同
------解决方案--------------------
可以把这段代码写在confirm的后面,与其在同一个函数中
------解决方案--------------------
Response.Write("<script>");输出在文件头部,一打开就执行。 
RegisterClientScriptBlock一般返回的是客户端函数的包装, 
而RegisterStartupScript返回得函数在document装载完成后会执行,类似于body onload="f()"里面的函数; 

RegisterClientScriptBlock在<form runat=server>之后,而RegisterStartupScript在</form>之前。 
RegisterStartupScript会将内容输出在</form>标记之前,Form上其他任何元素之后,这样可以保证StartupScript被浏览器执行之前其他的页面元素已经被正确的实例化。