如何解决使用后面的代码的Javascript函数调用了onPageLoad而不是onClick
|| 我有一个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 );
%>
}
当我使用按钮加载页面时,该函数将在页面加载时立即执行,而不是onClick事件。
由于我需要实现的一切已经由codeBehind函数\“ LogUserSession \”实现,因此,如果可能的话,我希望避免开发jQuery Ajax Web服务或其他解决方案。
否则,如何从JavaScript将文本信息附加到现有的.txt文件中?
提前致谢。
解决方法
您的LogUserSession()是服务器端函数,在生成页面(包含您提供的摘录)时会在服务器端执行。它不会将其作为页面的onPageLoad事件的一部分执行(即在客户端)。
基本上,您要从logoff.aspx调用LogUserSession()函数。
如果您的SaveAndNavigate()函数有效,那么这应该是您在btnLogout中所需的全部。如果您不想使用AJAX进行呼叫,则需要具有一个提交到logoff.aspx的表单。如果它处理GET请求,甚至只是指向它的链接。
,如果我正确理解您的信息,那是您要运行的服务器端功能。从客户端,但是由于服务器在将代码发送到浏览器之前先对其进行解析,因此它发生在页面到达浏览器之前。我认为ajax是您的最佳选择。
,页面生成时,<%%>之间的代码在服务器上运行。这实际上是在浏览器事件获取页面之前发生的。
我建议您将注销的登录名移到\“ logoff.aspx \”页。这样就永远不会忘记它。
,一种方法是(未验证):
1)拥有一个名为Logout.aspx的页面,并在页面加载事件调用/实现中使用LogUserSession方法的功能。
2)在页面上添加一个img元素,该元素的width = 0和height = 0
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());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。