キーボードから手を離さずにページ編集を開始したい
下記について知りたいです。
キーボードでページ編集を開始するショートカットキー
UserScriptでページ編集を開始する方法
以前はUserScriptでキーボードのイベントを拾って特定のキーが押されたら、下記でページ編集を開始するようにしていました。
code:script.js
let input = document.querySelector('#text-input');
input.focus();
現在は上記ではカーソルが表示されなかったので下記のようにしてカーソル表示はできたのですが、
カーソルキーやEnterを一度だけ受け付けるものの、それ以降は(一度本文部分をクリックしないと)操作ができません。
code:script.js
let cursor = document.querySelector('.cursor');
cursor.style.display = "block";
let input = document.querySelector('#text-input');
input.removeAttribute('readonly');
input.className = "text-input line-title";
input.style.display = "block";
input.focus();
minified code:
$ var c=!1;scrapbox.addListener("lines:changed",()=>c=!1);scrapbox.addListener("layout:changed",()=>c=!1);var d=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var r=()=>{let e=document.getElementById("text-input");if(!!e)return d(e,"textarea#text-input"),e};var o=()=>{let e=r();if(!e)throw Error("#text-input is not found.");let t=Object.keys(e).find(n=>n.startsWith("__reactFiber"));if(!t)throw Error('#text-input must has the property whose name starts with "__reactFiber"');let s=et.return.return.stateNode._stores,i=s.find(n=>n.constructor.name==="Cursor");if(!i)throw Error('#text-input must has a "Cursor" store.');let a=s.find(n=>n.constructor.name==="Selection");if(!a)throw Error('#text-input must has a "Selection" store.');return{cursor:i,selection:a}};var l=()=>o().cursor;globalThis.addEventListener("keydown",e=>{if(e.isComposing)return;let t=l();t.hasFocus||(e.preventDefault(),t.focus())}); 関連ページへのリンクやコード、ありがとうございます!foldrr.icon