簡體   English   中英

如何從Asp.Net Code Behind調用JavaScript函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM