47 lines
No EOL
1 KiB
JavaScript
47 lines
No EOL
1 KiB
JavaScript
window.injectCSharp = async function (helper) {
|
|
window.CSHARP = helper
|
|
}
|
|
|
|
|
|
async function delay(t) {
|
|
return new Promise((resolve) => {
|
|
setTimeout(resolve, t);
|
|
});
|
|
}
|
|
|
|
async function removeElementById(id) {
|
|
document.getElementById(id)?.remove()
|
|
}
|
|
|
|
function scrollToId(id) {
|
|
const element = document.getElementById(id);
|
|
if (element instanceof HTMLElement) {
|
|
element.scrollIntoView({
|
|
behavior: "smooth",
|
|
block: "start",
|
|
inline: "nearest"
|
|
});
|
|
}
|
|
}
|
|
|
|
function toggleDetails(id) {
|
|
const element = document.getElementById(id)
|
|
if (element instanceof HTMLDetailsElement)
|
|
element.open = !element.open
|
|
}
|
|
|
|
function cacheBust(url) {
|
|
fetch(new Request(url), {
|
|
headers: new Headers({
|
|
"pragma": "no-cache",
|
|
"cache-control": "no-cache"
|
|
}),
|
|
mode: 'no-cors',
|
|
cache: 'no-cache',
|
|
})
|
|
.finally(() => {
|
|
let els = document.querySelectorAll(`[src="${url}"]`)
|
|
els.forEach(el => el.removeAttribute('src'))
|
|
els.forEach(el => el.src = url)
|
|
})
|
|
} |