2009-06-15 30 views
3

我需要相關RegisterClientScriptBlock & RegisterStartupScript & responce.write("script");DIFF的RegisterClientScriptBlock及的RegisterStartupScript與responce.write(「腳本」)

我得到了一些信息,如個人

解釋和個體優勢後

RegisterClientScriptBlock()方法將注入腳本形成開放標籤,但在頁面控制之前

RegisterStartupScript()方法將在頁面控件之後但在表單關閉標籤之前注入腳本。

我們也可以簡單地wrie responce.write("script")它也包括腳本。

,但我需要單獨解釋

如果任何鏈路可關於這個話題也請回復我。

回答

3

如果您使用RegisterClientScriptBlock()並且需要引用可能被注入的其他JavaScript方法或html對象,那麼運行該腳本時可能會導致它們不會被創建。正如您所說的,使用RegisterStartupScript()將腳本放在頁面的底部,以保證在腳本運行之前所有對象都將被渲染和創建。

如果您使用的是添加了一個腳本,是一個函數,如:

<script type="text/javascript> 
    function myFunc(){ 
    ... 
} 
</script> 

則無所謂,因爲該功能需要被顯式調用,別的東西。

但如果你想有文件加載等之後運行的腳本:

<script type="text/javascript> 
    doStuff(); 
</script> 

那麼你應該使用的RegisterStartupScript(),所以你的保證下,由您或調用的任何對象調用函數存在。

+0

你知道在函數中的構建可以使用RegisterClientScriptBlock()注入,但可以通過responce.write()完成。也知道 ???? like responce.write(); 同樣可以通過RegisterClientScriptBlock()來禁用,然後使用RegisterClientScriptBlock()來區別。 – vineth 2009-06-16 06:05:08