私のアプリケーションのセッション管理は、セッションがタイムアウトしたことをユーザーに通知するページにユーザーをリダイレクトします<a href="path/to/page.html" id="manual_link">sign in</a>
。
私は次の動作をプログラムしようとしています:
- JavaScriptがオフの場合(または使用できない場合)、ユーザーは「サインイン」リンクをクリックする必要があります(POHTML、問題ありません)。
JavaScriptが実行されている場合:
a)。プログレッシブ-リンクを拡張して、代わりに「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);
4秒のdelay-then-submitが発生していますが、ユーザーが4秒待ちたくない場合は、リンクをインターセプトすることができないようです。つまり、ユーザーが1秒後にリンクをクリックすると、4秒が経過するまで何も起こりません。
リンククリック時にsetTimeoutを強制終了する必要があると思いますが、方法がわかりません(clearTimeoutでの手探りの試みは非常に残念でしたが、例のJSFiddleには含めていません)。および/または'のデフォルトの動作を防ぐ必要があります(私はそれを二乗するa
と思っていましたが)。return false
目的の機能を実現するには、どのような変更が必要ですか?