簡體   English   中英

如何從asp.net子函數調用javascript函數?

[英]How to call a javascript function from asp.net Sub functions?

因此,在廣泛搜索之后,我發現為了觸發javasript函數,我們可以這樣做:

<script>
function foobar()
  {
   alert("foobar");
  }
</script>

Dim strScript As String = "<script language='javascript' id='myClientScript'>foobar();</script>"

Page.RegisterStartupScript(“callTest”,strScript)

但是,Page.RegisterStartupScript似乎只能在Page_load函數下工作。

當我將其放在Sub中時,如下所示:

Sub Test

Dim strScript As String = "<script language='javascript' id='myClientScript'>foobar();</script>"

Page.RegisterStartupScript(“callTest”,strScript)

End Sub

這行不通。 當我將上述功能鏈接到一個asp按鈕時。 我觸發了按鈕,但是什么也沒發生。 因此,無論如何有條件地從asp.net觸發javaScript函數? 從子函數而不是每個page_load?

謝謝!!

您應該代表這一行

Dim strScript As String = "<script language='javascript' id='myClientScript'>foobar();</script>"

Dim strScript As String
strScript = "<script language='javascript' id='myClientScript'>foobar();</script>"

如果要為asp.net按鈕單擊調用javascript,則可以將OnClientClick屬性與客戶端函數OnClientClick="buttonClick()" :-

<asp:button id="Button1" 
  runat="server" 
  OnClientClick="buttonClick()" 
  Text="Click!" />

首次加載頁面時,將執行使用RegisterStartUpscript方法注入的javascript。 當您需要在插入之后執行JavaScript時,請嘗試使用RegisterClientScriptBlock方法。

Type t = this.GetType();
if (!ClientScript.IsClientScriptBlockRegistered(t, "myClientScript"))
{
   ClientScript.RegisterClientScriptBlock(t,"myClientScript", sb.ToString());
}

雖然不確定它是否可以在更新面板中使用

以下是我正在使用的JavaScript函數,該函數已在我工作的眾多Web應用程序中使用。 在此特定示例中,我正在將客戶端IP地址與網絡上的預定IP地址進行比較,如果客戶端IP不匹配,則會顯示一個消息框,然后告知用戶不允許其特定的計算機終端提出這些具體要求。

Dim ipAdd as string = nothing
ipAdd = Request.ServerVariables.Item("REMOTE_ADDR")
If ipAdd <> "###.###.###.###" then
ClientScript.RegisterClientScriptBlock(Page.GetType, "Script", "<script language='javascript'>alert('This terminal is not permitted to submit requests.');</script>")
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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