input mode UserScript
Scrapboxで記事を徘徊していると勢い余ってうっかり記事を編集してしまったり,最悪消してしまうことがよくあります. readonly mode
input mode
さてこのUserScriptを有効にすると
https://gyazo.com/25f97bec8d089ada92f09e5083948d8f
このように背景がグレーアウトし,一切の入力操作を受け付けなくなります (readonly mode).
この際に右のnavbarのペンアイコンをクリックするか,iキーを押下すると
https://gyazo.com/7ba3fa2fbe197de2bafb9b9b6deabf20
グレーアウトが解除され入力操作を受け付けるようになります (input mode).
再度readonly modeに戻りたい場合は,同様に右のnavbarのペンアイコンをクリックするか,Escキーを押下すると良いでしょう.
というわけでそのスクリプトが以下です:
code:script.js
let isInputMode = true;
const enterInputMode = (e) => {
if (!isInputMode) {
if (e) {
e.preventDefault();
}
$("#text-input").prop('disabled', false);
$("#text-input").focus();
$('.page').css('opacity', '1.0');
isInputMode = !isInputMode;
}
}
const exitInputMode = (e) => {
if (isInputMode) {
$("#text-input").prop('disabled', true);
$('.page').css('opacity', '0.6');
isInputMode = !isInputMode;
}
}
const modeSelectors = {
true: exitInputMode,
false: enterInputMode,
}
scrapbox.PageMenu.addMenu({
title: 'Input mode',
onClick: () => {
},
});
$(window).keydown((e) => {
if (e.keyCode === 73) { // key code of "i"
enterInputMode(e);
}
if (e.keyCode === 27) { // key code of Esc
exitInputMode(e);
}
});
exitInputMode();
実際に利用する際は
code:example-script.js
import '/api/code/moznion/input_mode_UserScript/script.js'
などとしてやると良いのではないでしょうか.
これで安心して閲覧できますね.良かった良かった.