KaTeX-CDN
2021-05-27 21:48:03 window.katexが読み込まれるまで待つようにした
load eventだけじゃ、本当に読み込まれたかどうかわからないみたい
code:script.js
let loaded = false;
export const install = () => new Promise(async (resolve, reject) => {
// 二重読み込み防止
if (document.querySelector(script[src="${src}"])) {
if (!loaded) {
await wait();
}
resolve();
return;
}
const script = document.createElement("script");
script.addEventListener('load', async () => {
await wait();
loaded = true;
resolve();
});
script.addEventListener('error', e => reject(e));
script.src = src;
document.head.appendChild(script);
});
// 本当に読み込まれたか確認する
const wait = () => new Promise(resolve => {
const timer = setInterval(() => {
if (!window.katex) return;
clearInterval(timer);
resolve();
}, 500);
});