install-CDN
cdnjsなどからscrapboxにscriptを読み込むための関数 code:script.js_old
export function installCDN({id,src, module = false} = {}) {
const oldScript = document.getElementById(id);
oldScript?.parentNode.removeChild(oldScript);
const script = document.createElement("script");
script.src = src;
script.id = id;
if (module) {script.type = 'module';}
document.head.appendChild(script);
}
loadイベントを使ったらsetTimeoutの代わりにawaitでいけるかな?
こんなイベントあったんだ
便利じゃん!
code:script.js
export const installCDN = ({id, src, module = false} = {}) => new Promise((resolve, reject) => {
const oldScript = document.getElementById(id);
oldScript?.parentNode.removeChild(oldScript);
const script = document.createElement("script");
script.addEventListener('load', () => resolve());
script.addEventListener('error', ev => reject(ev));
script.src = src;
script.id = id;
if (module) { script.type = 'module'; }
document.head.appendChild(script);
});
試してみたけどCSPに引っかかったmiyamonz.icon
これもfirefoxとかchromeでの挙動の違いかな?
引っかかったのはscrapbox.io/filesのJSファイルですか?takker.icon
その場合は、おそらくscript-srcで制限されているのだと思います
cdnjs.cloudflare.comはChromeでも引っかからないはずです
これだとできた!miyamonz.icon
miyamonz.iconが失敗したのはcdn.jsdelivr.net
scrapbox自体が利用してるcdnと同じものを使えば制限に引っかからないということか
そういうことですねtakker.icon