[英]How do I call a JavaScript function from Asp.Net Code Behind?
這是我的JavaScript函數:
function WantToSave()
{
alert('You should save now !');
}
這是我的ASP.NET代碼背后:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();");
到達RegisterStartupScript
函數,這是肯定的。 但它不會觸發我的JavaScript功能。 而第二個參數,它應該是一個“起始腳本的關鍵”是的,但我應該把它放在那里?
默認情況下,腳本將寫入輸出但沒有<script>
標記。 如果您使用瀏覽器的JavaScript控制台或在客戶端上查看生成的HTML,您可能會注意到這一點。 確保您熟悉這些工具。
你可以讓它為你添加腳本標簽,方法的重載略有不同 。
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
或者你可以自己添加:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");
密鑰字符串和控件注冊類型的組合用於唯一標識已注冊的腳本,以防您以后要取消注冊或用其他腳本替換它。 所以關鍵不一定要具體,只需要一些獨特的東西。
您可以使用腳本管理器注冊啟動腳本方法。 它有一個bool參數(最后一個),稱為添加腳本標記,為您添加腳本標記。
ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WantToSave();",true);
你應該試試這個:
var name = "WantToSave";
var script = "<script>alert('You should save now !');</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), name, script);
或者您應該在調用結束時添加一個true參數,該參數指定添加腳本標記。
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();",true);
根據MSDN使用此重載,您必須將您的調用包裝在<script></script>
標記中,因此您將執行以下操作:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");
或使用其他過載
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
這將根據布爾參數添加或不添加它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.