调用Javascript
不管是论坛还是QQ群里,很多同学都会问一个问题,就是他的后台程序怎么调用前台JS的方法。问这个问题其实不奇怪,奇怪的是很多同学没想到的一点就是B/S到底是怎么工作的?知道工作方式我们还能不会“调用”吗?
B/S:Browser / Server,即“浏览器/服务端”模式的应用程序。Browser就是浏览器,浏览器打开网页后网页是在哪?客户端!缓存里!Javascritpt是客户端运行的,而后台程序是服务器运行的,服务器怎么能调用到客户端的代码呢?
服务器的责任是什么?是负责的是页面的生成! 既然可以是生成页面,我可以生成的代码里有对某个JS的方法的调用。
例如:
<script>
function alertme(){
alert("hello");
}
</script>
function alertme(){
alert("hello");
}
</script>
我想调用这个alertme,如果我生成的html代码里有 <script>alertme();</script>就可以了吧?怎么才能有? 输出啊!
ASP.NET里也提供了几种不同的输出方式,RegisterClientScriptBlock 、RegisterStartupScript、 RegisterClientScriptInclude、RegisterClientScriptResource等,平时我们用Reponse.Write("")即可。那么这么多RegisterClientScript我该用哪个呢?
首先我们要清楚这些RegisterClientScript是干什么的,自然就知道怎么用了。打开MSDN(我们要习惯查看MSDN)看看每个的详细介绍。
首先我们要清楚这些RegisterClientScript是干什么的,自然就知道怎么用了。打开MSDN(我们要习惯查看MSDN)看看每个的详细介绍。
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(GetType(), "alert", "<script type=text/javascript> document.write('RegisterStartupScript'); </script>");
Page.ClientScript.RegisterClientScriptBlock(GetType(), "alert", "<script type=text/javascript> document.write('RegisterClientScriptBlock'); </script>");
Page.ClientScript.RegisterClientScriptInclude(GetType(), "alert", "scripts/jquery-1.4.1.js");
Page.ClientScript.RegisterClientScriptResource(GetType(), "jquery");
}
{
Page.ClientScript.RegisterStartupScript(GetType(), "alert", "<script type=text/javascript> document.write('RegisterStartupScript'); </script>");
Page.ClientScript.RegisterClientScriptBlock(GetType(), "alert", "<script type=text/javascript> document.write('RegisterClientScriptBlock'); </script>");
Page.ClientScript.RegisterClientScriptInclude(GetType(), "alert", "scripts/jquery-1.4.1.js");
Page.ClientScript.RegisterClientScriptResource(GetType(), "jquery");
}
看看生成的HTML:
代码
<!--这是Block-->
<script type=text/javascript> document.write('RegisterClientScriptBlock'); </script>
<!--这是Include-->
<script src="scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type=text/javascript> document.write('RegisterClientScriptBlock'); </script>
<!--这是Include-->
<script src="scripts/jquery-1.4.1.js" type="text/javascript"></script>
<!--这是Source-->
摘自 http://space.itpub.net/12639172/viewspace-673143