- Products -


Software


NEWS


Special



- Knowledge -


Category × Tag



- Like -

公開
作成日:2022/6/7
更新日:2022/6/7

WEB画面で一定時間操作されなかった時に任意のjsを実行する方法

・簡単に実装可能

考え方


・タイマーを設定して、無操作時間の待機を行う。
・特定のイベントを補足して、そのイベントが発生した際にタイマーをリセットする。

実装例


・60秒無操作だった時に確認ダイアログを表示する例
・キー操作、マウス操作を監視している。


// --- データ更新を促す
(function () {
    const sec = 60;
    const events = ['keydown', 'mousemove', 'click'];
    let timeoutId;

    // タイマー設定
    function setTimer() {
        timeoutId = setTimeout(logout, sec * 1000);
    }
    function resetTimer() {
        clearTimeout(timeoutId);
        setTimer();
    }

    // イベント設定
    function setEvents(func) {
        let len = events.length;
        while (len--) {
            addEventListener(events[len], func, false);
        }
    }

    // ログアウト
    function logout() {
        if (window.confirm("1分無操作でした。画面を更新してよろしいですか?")) {
            window.location.reload();
        }
    }

    setTimer();
    setEvents(resetTimer);
})();



参考


https://qiita.com/shigakin/items/5f0ab0c96a0b8f739a32


Category



Tag




関連記事


{{tmp.name}}

{{article.category}} {{article.title}}