2010-04-29 50 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是隐藏页类的名字代码

相关问题