diff --git a/packages/preload/loading.ts b/packages/preload/loading.ts index e4babed..84d72df 100644 --- a/packages/preload/loading.ts +++ b/packages/preload/loading.ts @@ -43,12 +43,25 @@ export function useLoading() { return { appendLoading() { - document.head.appendChild(oStyle) - document.body.appendChild(oDiv) + safe.append(document.head, oStyle) + safe.append(document.body, oDiv) }, removeLoading() { - document.head.removeChild(oStyle) - document.body.removeChild(oDiv) + safe.remove(document.head, oStyle) + safe.remove(document.body, oDiv) }, } } + +const safe = { + append(parent: HTMLElement, child: HTMLElement) { + if (!Array.from(parent.children).find(e => e === child)) { + return parent.appendChild(child) + } + }, + remove(parent: HTMLElement, child: HTMLElement) { + if (Array.from(parent.children).find(e => e === child)) { + return parent.removeChild(child) + } + }, +}