feat: run script before the page is fully loaded
This commit is contained in:
parent
2eca89e672
commit
003377e9ec
|
@ -1,7 +1,7 @@
|
||||||
import './meta'
|
import './meta'
|
||||||
|
|
||||||
import FileSaver from 'file-saver'
|
import FileSaver from 'file-saver'
|
||||||
import { waitForDocumentLoaded, console } from './utils'
|
import { waitForSheetLoaded, console } from './utils'
|
||||||
import { downloadPDF } from './pdf'
|
import { downloadPDF } from './pdf'
|
||||||
import { downloadMscz } from './mscz'
|
import { downloadMscz } from './mscz'
|
||||||
import { getFileUrl } from './file'
|
import { getFileUrl } from './file'
|
||||||
|
@ -143,4 +143,4 @@ const main = (): void => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||||
waitForDocumentLoaded().then(main)
|
waitForSheetLoaded().then(main)
|
||||||
|
|
20
src/utils.ts
20
src/utils.ts
|
@ -136,3 +136,23 @@ export const waitForDocumentLoaded = (): Promise<void> => {
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run script before the page is fully loaded
|
||||||
|
*/
|
||||||
|
export const waitForSheetLoaded = (): Promise<void> => {
|
||||||
|
if (document.readyState !== 'complete') {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
const observer = new MutationObserver(() => {
|
||||||
|
const img = document.querySelector('img')
|
||||||
|
if (img) {
|
||||||
|
resolve()
|
||||||
|
observer.disconnect()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
observer.observe(document.body, { childList: true, subtree: true })
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
return Promise.resolve()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue