微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用后面的代码的Javascript函数调用了onPageLoad而不是onClick

如何解决使用后面的代码的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 举报,一经查实,本站将立刻删除。