js-script-button
JavaScript を実行する
UserScriptも実行できる
↓アイコン画像
これかなり使えそう
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.jsexport 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...');
}
}
←実行ボタン