Last active
September 30, 2022 05:57
-
-
Save derpycoder/5395c504f0eface691077d18e356e5cd to your computer and use it in GitHub Desktop.
Opens a Pop Up & Closes it when it matches a route URL!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const POP_UP_URL = "/" | |
const TARGET_URL = window.location.origin | |
const TARGET_URL_REGEX = new RegExp(TARGET_URL) | |
const POP_UP_WINDOW = open(POP_UP_URL, "Pop Up Window", `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=512,height=512`); | |
const onPopUpClose = () => { | |
console.log("Pop Up Closed") | |
} | |
// Watch if Pop Up closed, repeatedly, as onclose callback doesn't work for pop ups! | |
let popUpWatcher = setInterval(() => { | |
if (POP_UP_WINDOW.closed) { | |
clearInterval(popUpWatcher); | |
onPopUpClose(); | |
} | |
}, 500); | |
let redirectWatcher = null; | |
POP_UP_WINDOW.onunload = () => { | |
clearInterval(redirectWatcher) | |
// Watch Redirects happening in the Pop Up | |
redirectWatcher = setInterval(() => { | |
if(POP_UP_WINDOW.closed) { | |
clearInterval(redirectWatcher) | |
return; | |
} | |
// Close the Pop Up when its URL matches the Target URL! | |
if (TARGET_URL_REGEX.test(POP_UP_WINDOW.document.location.href)) { | |
clearInterval(redirectWatcher); | |
POP_UP_WINDOW.close(); | |
} | |
}, 500); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment