[英]calling javascript function from code behind
我試圖從按鈕單擊事件后面的代碼中調用javascript函數。 以下是我的JavaScript代碼。
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", "javascript:clearBox();", true);
而功能是
<script type="text/javascript">
function clearBox() {
alert("Test");
}
</script>
我收到錯誤消息“預期對象”
您應該使用按鈕的OnClientClick屬性:
<asp:Button runat="server" OnClientClick="clearBox()" />
RegisterClientScriptBlock
只會在頁面上放置一段代碼:
<script type="text/javascript">
javascript:clearBox();
</script>
而且這將是無效的,因為它不是有效的代碼(因為javascript:
用於錨定以從href: <a href="javascript:some_code_here()"></a>
運行js)
如果要RegisterClientScriptBlock
,另一個選擇是使用addEventListener將onclick處理程序分配給按鈕。 這是此代碼段(跨瀏覽器和純JS)。 可以這樣使用:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", "addListener('"+button.ClientID+"', 'click', clearBox);", true);
但是最好用[RegisterStartupScript](http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx)
替換RegisterClientScriptBlock
,在該方法中,可以在加載所有HTML之前先調用第一個,並且可能還沒有按鈕。
UPD好,感謝HVD 。 他提醒我,JS中有標簽 ,實際上javascript:clearBox()
是有效的代碼,但不能滿足OP的要求
使用此代碼:
Page.ClientScript.RegisterStartupScript(this.GetType(), "Error", "clearBox();", true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.