scrapbox-editor-begin-edit
動機
キーボードから手を離さずに、本文を編集したい。
機能
ページを表示していて編集モードではない状態の時に設定したキーを押すと、
カーソルが現れて編集可能になる。
設定方法
自分のページに下記を貼り付ける。
自分のページ(js)code:script.js
import '/api/code/foldrr/scrapbox-shortcut/script.js'
上記よりも後の部分で下記を貼り付けて、編集する。
自分のページ(js)code:script.js
import '/api/code/foldrr/scrapbox-editor-begin-edit/script.js'
scrapboxShortcut.onBrowse('enter', window.scrapboxEditorBeginEdit)
コード
script.jswindow.scrapboxEditorBeginEdit = e => {
if (e.target.tagName == 'A') return;
let input = document.querySelector('#text-input');
if (! input) return;
let key = Object.keys(input).find(k => k.startsWith('__reactFiber'));
if (! key) return;
e.preventDefault();
let stores = input[key].return.return.stateNode._stores;
let cursor = stores.find(x => x.constructor.name === 'Cursor');
cursor.focus();
};
関連
このページの存在を忘れていた……。
検索の時にキーワードを指定しすぎて見つけられていなかった……。
前述のリンクとは別に要望ページを作ってしまった。
takkerさんから他プロジェクトやコードを教えてもらった。
コードをそのまま使ったほうがいいのかもしれないけど、仕組みを知るために分解して書き直した。
本ページに書いてあるコードを使うより、上記リンク先にあるコードを使ったほうがいいです。