scrapbox-insert-text
/icons/hr.icon
コードが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キーで代行する
/icons/hr.icon
引数
text: 入力したいテキスト
cursor: テキストを入力する<textarea>
scrapboxなら#text-input
不要になった
code:script.js
import {scrapboxDOM} from '../scrapbox-dom-accessor/script.js';
export function insertText(text) {
const cursor = scrapboxDOM.textInput;
cursor.focus();
//if (isFirefox()) {
ここ妙に回りくどいことをしている気がするんだよなあtakker.icon
References
2021-01-10 19:41:39 書き直した
code: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);
//}
}
テストコード
code:js
import('/api/code/takker/scrapbox-insert-text/test1.js');
code:test1.js
import {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));