Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"FocusGroup polyfill" initialize at the right time #581

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
"FocusGroup polyfill" initialize at the right time
There are 3 readyStates in this order:

1. loading 
|
|
  -> DOMContentLoaded fires
2. interactive
|
| < - script executes, `!complete` ? addEventListener(...) : OneTimeInit() // addEventListener wins
|
3. complete

If the script is executed between `interactive` and `complete`,  `OneTimeInit` does not run right now and the "DOMContentLoaded" listener will never fire.
nuxodin authored May 25, 2022
commit d7d69d13e77421d5600b95a4afd07dd202b3cd12
6 changes: 3 additions & 3 deletions Focusgroup/focusgroup_polyfill.js
Original file line number Diff line number Diff line change
@@ -276,9 +276,9 @@ function OneTimeInit() {

const focusgroupManagers = new WeakMap();

if ( document.readyState != "complete" ) {
document.addEventListener('DOMContentLoaded', OneTimeInit, { once: true } );
if ( document.readyState != "loading" ) {
OneTimeInit(); // run right now.
}
else {
OneTimeInit(); // run right now.
document.addEventListener('DOMContentLoaded', OneTimeInit, { once: true } );
}