2010-04-29 77 views
1

我有一個頁面,當用戶關閉瀏覽器標籤頁/瀏覽器窗口時,會觸發一個javascript。語言是在C#謝謝。從aspx中調用javascript函數背後的代碼

IM使用window.onbeforeunload,沿線像這樣:

<script type="text/javascript"> 


    window.onbeforeunload = myFunction; 


function myFunction() 
{ 
    //call my function here 
} 

背後函數的代碼將是一個簡單的功能了,所以不需要輸入參數和返回值。所以我只想知道如何調用我的函數(例如:public void callMyFunction())

+2

我覺得你很困惑在這裏... JavaScript代碼在瀏覽器(客戶端)中運行,C#代碼在服務器中運行。你不能從JavaScript調用C#代碼。最多可以通過AJAX調用來調用服務器上公開的web服務。 – 2010-04-29 10:19:53

+1

或使用Page方法。好教程:http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx – Joop 2010-04-29 10:35:55

+0

@ axel_c〜是什麼讓你覺得你不能從JavaScript調用C#代碼?我做了很多次..只需從你的javascript調用button.click()並驚訝! – Pabuc 2011-01-05 07:27:21

回答

0

嘗試下面的示例代碼:

<html> 
<head> 
    <script src="scripts/jquery-1.4.4.min.js" type="text/javascript"></script> 

    <script type="text/javascript" language="javascript"> 
     windown.OnUnload(){ function(){ $("#Btn_Click").click();}}; 
    </script> 

</head> 
<body> 
... 

<asp:Button ID="Btn_Click" runat="server" Text="ButtonClick" onClick="Btn_Click" /> 
... 
</body> 
</html> 

希望它幫助!

0

通過使用Ajax,您可以訪問javascript後面的代碼。 試試這個代碼。

<script type="text/javascript"> 
    classname.methodname(); 
    </script> 

在代碼隱藏頁: 在頁面加載,你需要註冊follwing代碼...

pageload() 
{ 
     AjaxPro.Utility.RegisterTypeForAjax(typeof(pagename), this.Page); 
} 



[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)] 
    public void methodname() 
    { 
    .......... 
    ........ 
    } 

其中className是隱藏頁類的名字代碼

相關問題