我有一个HTML按钮,onClick应该调用两个函数:
<input id="btnLogout" onclick="test();SaveAndNavigate('logoff.aspx');" type="button">
在函数test()中,我只需要在.txt文件(在服务器端)写入/追加用户名。 txt文件是一个日志文件,我希望在当前用户注销时跟踪。
功能测试是:
function test()
{
<%
LogUserSession("User: "+ System.Web.HttpContext.Current.ApplicationInstance.Session.SessionID.CurrentUser +" logged out on: " + System.DateTime.Now );
%>
}
当我使用按钮加载页面时,该功能会立即在pageload而不是onClick事件上执行。 由于我需要实现的所有功能都是由codeBehind函数“LogUserSession”实现的,所以我希望尽可能避免开发jQuery Ajax Web服务或其他解决方案。
否则如何将文本信息附加到javascript中的现有.txt文件中? 提前谢谢。
答案 0 :(得分:0)
如果我理解正确的话,那就是你想要运行的服务器端功能。从客户端但由于服务器在将代码发送到浏览器之前解析代码,因此它在页面到达浏览器之前发生。我认为ajax是你最好的选择。
答案 1 :(得分:0)
&lt; %%&gt;之间的代码在生成页面时在服务器上运行。这实际上是在浏览器事件获取页面之前发生的。
我建议您将注销的loggin移动到“logoff.aspx”页面。这种方式永远不会忘记。
答案 2 :(得分:0)
这样做的一种方法是(未经验证):
1)有一个名为Logout.aspx的页面,并在页面加载事件中调用/实现LogUserSession方法的功能。
2)在页面上添加一个宽度= 0和高度= 0
的img元素3)在测试javascript函数中,将img的src属性分配给Logout.aspx。
即:
<img id="logoutImg" width=0 height=0 style="display:none"/>
.
.
.
function test(){
document.getElementById("logoutImg").src = ("Logout.aspx?_rnd" + new Date());
}
答案 3 :(得分:0)
您的LogUserSession()是一个服务器端函数,在您的页面(包含您提供的数据提取)生成时 - 在服务器端生成。它不是作为页面的onPageLoad事件的一部分执行它(即在客户端)。
基本上你想要的是从logoff.aspx调用LogUserSession()函数。
如果您的SaveAndNavigate()函数有效,那么这应该是您在btnLogout中所需的全部内容。如果您不想使用AJAX进行调用,则需要提交一个提交到logoff.aspx的表单。如果它处理GET请求,甚至只是它的链接。