diff options
-rw-r--r-- | docs/en/developers/03_Backend/05_Extensions.md | 18 | ||||
-rw-r--r-- | p/scripts/main.js | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/docs/en/developers/03_Backend/05_Extensions.md b/docs/en/developers/03_Backend/05_Extensions.md index 2a4c4dcf0..cf0fa3386 100644 --- a/docs/en/developers/03_Backend/05_Extensions.md +++ b/docs/en/developers/03_Backend/05_Extensions.md @@ -183,6 +183,24 @@ The following events are available: > ℹ️ Note: the `simplepie_*` hooks are only fired for feeds using SimplePie via pull, i.e. normal RSS/Atom feeds. This excludes WebSub (push), and the various HTML or JSON Web scraping methods. +### JavaScript events + +```javascript +function use_context() { + // Something that refers to the window.context +} + +if (document.readyState && document.readyState !== 'loading' && typeof window.context !== 'undefined' && typeof window.context.extensions !== 'undefined') { + use_context(); +} else { + document.addEventListener('freshrss:globalContextLoaded', use_context, false); +} +``` + +The following events are available: + +* `freshrss:globalContextLoaded`: will be dispatched after load the global `context` variable, useful for referencing variables injected with the `js_vars` hook. + ### Injecting CDN content When using the `init` method, it is possible to inject scripts from CDN using the `Minz_View::appendScript` directive. diff --git a/p/scripts/main.js b/p/scripts/main.js index 112b38bce..73ac27ddd 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -53,6 +53,9 @@ var context; context.icons.unread = decodeURIComponent(context.icons.unread); context.extensions = json.extensions; }()); + +const freshrssGlobalContextLoadedEvent = new Event('freshrss:globalContextLoaded'); +document.dispatchEvent(freshrssGlobalContextLoadedEvent); // </Global context> function badAjax(reload) { |