我的应用程序的会话管理会将用户重定向到一个页面,用户被告知他们的会话已超时,请<a href="path/to/page.html" id="manual_link">sign in</a>
.
我正在尝试对以下行为进行编程:
- 如果 JavaScript关闭(或不可用),用户必须单击“登录”链接(POHTML;没问题)。
如果 JavaScript 正在运行:
一个)。逐步增强链接以提交带有“security_redirect” (
document.getElementById('manual_link').onclick = "javascript:submit_security_redirect(); return false;";
) id 的隐藏表单b) 如果用户没有先点击链接,则延迟 4 秒后自动提交表单(假设
remaining_time
为 4000):setTimeout(function () { submit_security_redirect(); }, remaining_time);
四秒延迟然后提交正在发生,但如果用户不想等待四秒,我似乎无法拦截链接。换句话说,如果用户在一秒钟后点击链接......直到四秒钟结束后才会发生任何事情。
我怀疑我需要在链接单击时终止 setTimeout,但不知道如何(我对clearTimeout的摸索尝试非常令人失望,我什至没有将它们包含在示例 JSFiddle 中)。和/或我需要防止a
的默认行为(尽管我认为return false
将其排除在外)。
需要哪些修改才能实现所需的功能?