scrapCalc
code:script.js
const statusDom = document.createElement("div");
statusDom.innerText = ScrapCalc中;
function scrapcalc_exec(){
for(let e of document.querySelectorAll('.deco-\\%')){
let text = e.innerText;
// 全角カギカッコを配列などで使えるようにする苦しい工夫
if(text.match(/=/)){
(0,eval)(expr); // 何故かこれでstrictが有効でなくなる?
}
else {
let span = document.createElement('span');
span.classList.add("scrapcalc_result");
span.innerText = (0,eval)(expr);
e.parentNode.appendChild(span)
e.classList.add("scrapcalc_exp")
e.style.display = 'none';
}
}
document.querySelector(".page").style.opacity = 0.75 ;
document.querySelector(".page").style.pointerEvents = "none" ;
document.querySelector(".status-bar").appendChild(statusDom);
}
function scrapcalc_reset(){
for(let e of document.querySelectorAll('.scrapcalc_result')){
e.remove();
}
for(let e of document.querySelectorAll('.scrapcalc_exp')){
e.style.display = 'inline';
}
if(document.querySelector(".page") != null){
document.querySelector(".page").style.opacity = null;
document.querySelector(".page").style.pointerEvents = null ;
}
statusDom.remove();
}
scrapbox.on("page:changed",scrapcalc_reset)
scrapbox.on("layout:changed",scrapcalc_reset)
scrapbox.PageMenu.addMenu({
title: 'calc',
onClick:()=>{
if(statusDom.parentElement == null){
scrapcalc_exec();
}
else {
scrapcalc_reset();
}
}
});
https://gyazo.com/26045999baad174ac4e341477e2a35e2
キーボードがない環境でもトグルできる