Skip to content

Instantly share code, notes, and snippets.

@Schniz
Created July 6, 2020 07:31
Show Gist options
  • Select an option

  • Save Schniz/1a3dfa1c4158637b47a33c8c4f2d7be1 to your computer and use it in GitHub Desktop.

Select an option

Save Schniz/1a3dfa1c4158637b47a33c8c4f2d7be1 to your computer and use it in GitHub Desktop.

Revisions

  1. Schniz created this gist Jul 6, 2020.
    22 changes: 22 additions & 0 deletions turbolinks-preserve-focus.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    let lastFocusedId = null;

    document.addEventListener("turbolinks:request-start", function () {
    const element = document.querySelector(
    "[data-turbolinks-preserve-focus]:focus"
    );

    if (element) {
    lastFocusedId = element.id;
    }
    });

    document.addEventListener("turbolinks:load", function () {
    if (!lastFocusedId) return;

    const element = document.getElementById(lastFocusedId);
    lastFocusedId = null;

    if (!element) return;

    element.focus();
    });