generated at
カーソルキーでページを選択するUserScript
トップページで、ページがたくさん並んでいる時、
tab or shift+tabでリンクのフォーカスが移動できる。
これは前後にしか行けないので、矢印キーを使って前後左右に行けるようにする。

script.js
(() => { let onKeyDown = function(e){ // トップページでShiftと矢印キーが押されたときだけ if (scrapbox.Layout === "list" && e.shiftKey && e.code.substr(0, 5) === "Arrow") { // OK } else { return; } function getGridNumber() { return parseInt( document.querySelector('div.page-list').offsetWidth / document.querySelector('li.page-list-item').offsetWidth ); }; const grid = getGridNumber(); const distance = { ArrowUp: - grid, ArrowLeft: - 1, ArrowRight: 1, ArrowDown: grid }[e.code]; let current = document.activeElement.parentElement; if (! current.classList.contains("page-list-item")) { // グリッド選択状態でなければ最初のグリッドを選択 current = document.querySelector('.page-list-item'); } else if (0 < distance) { // 進行方向(右・下)へ移動 for (let i = 0; i < distance; i++) { current = current.nextElementSibling; if (current === null) { return; // 端っこ } } } else { // 逆方向(左・上)へ移動 for (let i = 0; i > distance; i--) { current = current.previousElementSibling; if (current === null) { return; // 端っこ } } } current.children[0].focus(); }; document.addEventListener('keydown', onKeyDown); })();

UserScript