簡體   English   中英

如何從c#調用javascript函數

[英]How to call javascript function from c#

我喜歡從c#調用JavaScript函數。 任何人都可以給我代碼片段。

更多詳情...

我有一個asp.net頁面,它有一個asp按鈕。 當我點擊該按鈕時,我想調用javascript函數。

喜歡......

在我的asp.net頁面中,

<button id="save" onclick="i like to call a method resides in asp.net page'>Save</button>

越來越多的細節...當點擊asp.net按鈕時,我喜歡執行一些服務器端操作,然后喜歡從那里調用一個javascript函數...

對於asp:button您使用OnClientClick

<asp:Button id="myid" runat="server" OnClientClick="alert('test')" />

假設您在ASP.NET(包括MVC)中編碼,調用JavaScript函數意味着將JavaScript中的調用嵌入到ASPX代碼中,如下所示:

<script type="text/javascript">
  doSomething();
</script>

您確實有機會將信息從C#傳遞給JS調用,就像您可以使用任何其他代碼更改ASPX的結果一樣:

<script type="text/javascript">
  doSomething("<%= GetSomeTextFromCSharp();  %>");
</script>

這實際上擴展了“從C#調用JavaScript”的定義。 您正在做的是讓您的C#/ ASPX代碼生成HTML / JavaScript,然后瀏覽器將其解釋為任何其他HTML / JS(無論它是如何生成的)。

也許你可以解釋一下你想要做些什么。

我嘗試使用此代碼,它適用於我檢查是否有幫助

1)

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "alert('Informations');", true); 

另一種方法是調用源代碼頁中編寫的javascript方法

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "xyz();", true); 

您不能從ASP.NET C#代碼隱藏“調用”Javascript函數。 您可以將其他Javascript寫入網頁。 當頁面被發送回用戶並且Javascript存在時,您的代碼隱藏已經消失。 你可以寫出一個文字或做一個Response.Write()

Response.Write("<script language='javascript'>alert('Hellow World');</script>");

Sarathi,根據您最近的更新,您不清楚是否需要任何C#交互。 您的<button>似乎是嚴格的客戶端(即:HTML),其中沒有ASP.NET交互。 要調用JavaScript函數,您需要將函數調用附加到按鈕標記的onclick屬性:

<button id="save" onclick="mySaveFunction();'>Save</button>

請注意, mySaveFunction()只需要在瀏覽器的當前頁面的加載堆棧中定義。 這意味着它可以在以下任何一個中定義:

  • 包含<button>的ASPX頁面
  • 當前ASPX頁面的主頁面
  • 當前ASPX頁面加載的一個用戶控件(或MVC部分)
  • 由上述之一加載的外部JavaScript文件。

最后,我想重申一下,沒有特別針對此的C#/ ASP.NET特定內容。 您可以對任何語言/框架執行相同的操作,包括靜態HTML文件。 您的問題似乎完全取決於JavaScript。

對於window對象:
http://msdn.microsoft.com/en-us/library/ms536420%28VS.85%29.aspx

window.execScript

對於頁面pbject:
http://msdn.microsoft.com/en-us/library/dfbt9et1%28v=VS.71%29.aspx

的RegisterClientScriptBlock

RegisterOnSubmitStatement

的RegisterStartupScript

等......

你可以從頁面后面的代碼調用javascript函數..例如你在javasript中有closewindow函數定義部分..如果你想執行該函數,你可以在頁面后面的代碼中的任何點擊事件中編寫以下編碼。

ClientScript.RegisterClientScriptBlock(GetType(), "close", "<script language=javascript>Closewindow();</script>", false);

暫無
暫無

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

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