generated at
js-script-button
JavaScript を実行する
UserScriptも実行できる

↓アイコン画像

これかなり使えそうtakker
template用scriptで使うことを考えている
各ページごとに違うtemplateを生成することができる
その場で書いたscriptをすぐ試すのにも使えそう

button.js
(function () { let jsscript = document.getElementById('__JSsc__') if (jsscript){ jsscript.parentNode.removeChild(jsscript); //console.log("nop") // リロードしてリセット(暫定処置) location.reload(false) alert("removed"); } else { jsscript = document.createElement("script"); jsscript.id = '__JSsc__' jsscript.type = 'module'; jsscript.src = `https://scrapbox.io/api/code//${scrapbox.Project.name}/${encodeURIComponent(scrapbox.Page.title)}/script.js` document.body.appendChild(jsscript); } })()

button2.js
export async function execute() { const jsScript = new JSScript('__JSsc__'); if(jsScript.hasScript()) { jsScript.remove(); // リロードしてリセット(暫定処置) location.reload(false) alert("removed"); return; } jsScript.draw() } class JSScript { constructor(id) { this.id = id; } draw() { const jsscript = document.createElement("script"); jsscript.id = this.id; //console.log(this.id); jsscript.type = 'module'; jsscript.src = `https://scrapbox.io/api/code/${scrapbox.Project.name}/${encodeURIComponent(scrapbox.Page.title)}/script.js` ; document.body.appendChild(jsscript); //console.log(jsscript); } hasScript() { return document.getElementById(this.id) !== null;} remove() { //console.log('remove'); const jsscript = document.getElementById(this.id); if (!jsscript) return; // 既にscriptがある場合は削除する jsscript.parentNode.removeChild(jsscript); console.log('The script already exists. Removing it...'); } }

script.js
alert("Hello, world!!");

js-script-button←実行ボタン