icon-button.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.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...');
}
}