diff --git a/app/src/util/assets.ts b/app/src/util/assets.ts index 624416fb1..e26f182ec 100644 --- a/app/src/util/assets.ts +++ b/app/src/util/assets.ts @@ -28,7 +28,19 @@ export const loadAssets = (data: Config.IAppearance) => { const defaultThemeAddress = `/appearance/themes/${data.mode === 1 ? "midnight" : "daylight"}/theme.css?v=${Constants.SIYUAN_VERSION}`; if (defaultStyleElement) { if (!defaultStyleElement.getAttribute("href").startsWith(defaultThemeAddress)) { - defaultStyleElement.setAttribute("href", defaultThemeAddress); + const newStyleElement = document.createElement("link"); + newStyleElement.id = "themeDefaultStyleNew"; + newStyleElement.rel = "stylesheet"; + newStyleElement.href = defaultThemeAddress; + + // 等待新样式表加载完成再移除旧样式表 + new Promise((resolve) => { + newStyleElement.onload = resolve; + defaultStyleElement.parentNode.insertBefore(newStyleElement, defaultStyleElement); + }).then(() => { + defaultStyleElement.remove(); + newStyleElement.id = "themeDefaultStyle"; + }); } } else { addStyle(defaultThemeAddress, "themeDefaultStyle");