簡體   English   中英

從后面的代碼調用javascript函數

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

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