2009年1月9日 星期五

Server端註冊client端的Javascript

在ASP.net ,如果從 server 端想在 client 端註冊 Javascript,可以使用

RegisterStartupScript(keyscript)


RegisterClientScriptBlock(keyscript)




雖然都可以達到註冊 Javascript 的目的但他們實際上是有所差異的。




RegisterClientScriptBlock( ),他會將我們自訂的 JavaScript 產生在
<form runat="server"> 標籤之後,你可以在檢視網頁原始碼

時看到他。





RegisterStartupScript( ),則是產生在 </form> 標籤之前。

產生的先後順序,會造成影響的地方,在於觸發 Client 端 JavaScript
的時機。 假設你有一個 JavaScript 要將滑鼠游標停駐在某一個 TextBox,
如果你將 JavaScript 放在 <form runat="server">之後,則 TextBox 
的 HTML Code 尚未來得及產生,卻硬是要去設定游標位置,這時就會出現
JavaScript的錯誤。在這情況裡,選擇 RegisterStartupScript 會是個合適的
選擇。

參考網址:http://msdn.microsoft.com/en-us/library/aa478975.aspx
(Injecting Client-Side Script from an ASP.NET Server Control)