generated at
Scrapboxで範囲選択中にIMEをオフにしたい

まとめ
が消えないとあまりシームレスじゃないので、使うのやめる
どうやったら消せるんだろうなぁこれ

元の入力は要らないので切り捨てたい
known issueだった
だめ
preventDefault や stopPropagation の組み合わせを変える
処理入った直後に実行してみる
Firefoxの場合、keydownの後にcompositionupdateが発生するらしい
リスナー2つくって、クロージャかなんかで状態変数でやりとりすればいいかもしれない
ああ、ダメだ、IMEオンのときはkeydownに来ないんだ
sta.js
//残骸。動かん export function brackettingAlways() { document.addEventListener('keydown', e => { const eData = e.data console.log(e) const buttons = document.getElementsByClassName('popup-menu') ?.[0]?.getElementsByClassName('button') if (!buttons) return; // そもそもpopup menuがなかったら何もしない if (eData.length === 0) return; switch(eData.split('').pop()) { case '「': document.getElementsByClassName('button link-button')?.[0]?.click(); break; default: break; } }); document.addEventListener('compositionupdate', e => { const eData = e.data console.log(e) const buttons = document.getElementsByClassName('popup-menu') ?.[0]?.getElementsByClassName('button') if (!buttons) return; // そもそもpopup menuがなかったら何もしない if (eData.length === 0) return; switch(eData.split('').pop()) { case '「': document.getElementsByClassName('button link-button')?.[0]?.click(); break; default: break; } }); }

範囲選択しているかどうかは「popup menu出てるか」で判定する
出てたら0番目のbuttonをclick
takker.js
export function execute() { document.addEventListener('compositionupdate', e => { const buttons = document.getElementsByClassName('popup-menu') ?.[0]?.getElementsByClassName('button') if (!buttons) return; // そもそもpopup menuがなかったら何もしない if (e.data.length === 0) return; switch(e.data.split('').pop()) { case '「': e.preventDefault(); e.stopPropagation(); document.getElementsByClassName('button link-button')?.[0]?.click(); break; default: break; } }); }

やりたいこと
範囲選択中はほぼリンクをつける
IMEオンだとつかない → オフにして → つける、とかしてて面倒くさい
UserScriptでできないかしら
IME制御が無理ゲーな気がする
たぶんブラウザがセキュリティ的に許されてない