scrapbox-insert-text
コードがsimpleになった
2020-12-30 17:04:44
2020-12-24 04:23:51
cursor
を渡さなくても挿入できるようにした
2020-12-23 02:11:19
isFirefox()
を短く書き換えた
isFirefox()
を関数の外に出した
多分関数内だと毎呼び出しごとに生成を繰り返すことになってしまう?
既知の問題
scrapboxの自動挿入の影響を受けてしまう
e.g. 引用文中で改行を挿入しようとすると、勝手に先頭に >
が入ってしまう
対策
\n
を Enter
キーで代行する
引数
text
: 入力したいテキスト
cursor
: テキストを入力する <textarea>
scrapboxなら #text-input
不要になった
script.jsimport {scrapboxDOM} from '../scrapbox-dom-accessor/script.js';
export function insertText(text) {
const cursor = scrapboxDOM.textInput;
cursor.focus();
//if (isFirefox()) {
ここ妙に回りくどいことをしている気がするんだよなあ
References
2021-01-10 19:41:39 書き直した
script.js cursor.value = typeof text === 'object' ?
text.text : // 以前の形式の引数への対応
text;
const uiEvent = document.createEvent('UIEvent');
uiEvent.initEvent('input', true, false);
cursor.dispatchEvent(uiEvent);
//} else {
// document.execCommand('insertText', false, text);
//}
}
テストコード
jsimport('/api/code/takker/scrapbox-insert-text/test1.js');
test1.jsimport {insertText} from '../scrapbox-insert-text/script.js';
import {scrapboxDOM} from '../scrapbox-dom-accessor/script.js';
window.insertText = insertText;
scrapboxDOM.textInput.addEventListener('change', e => console.log(e));