scrapbox-editor-begin-edit
2023-12-05
見えない要素にfocusが当たっている可能性があるか……
しゃーない。 <C-i>
でfocusを当てるようにしよう
08:28:37 どこにもfocusが当たってないときのみ動作するようにした
元は任意のキー操作でfocusが当たるようにしていた
これだと、Search formなど、キー入力を拾いたいところの操作も奪ってしまっていて使い物になってなかった
<Esc>
押下でfocusが当たる仕様もよくない
<input>
にfocusが当たっている場合のみ除外することも考えたが、他のUserScriptで別のキーボードショートカットを使っている場合、それらを阻害してしまうのを防げない
$ deno check --remote -r=https://scrapbox.io https://scrapbox.io/api/code/takker/scrapbox-editor-begin-edit/script.ts
script.tsimport { takeCursor } from "../scrapbox-userscript-std/dom.ts";
globalThis.addEventListener("keydown", (e) => {
if (e.key !== "i" || e.shiftKey || e.altKey || e.metaKey || !e.ctrlKey) return;
if (e.isComposing) return;
const cursor = takeCursor();
if (cursor.hasFocus) return;
e.preventDefault();
cursor.focus();
});