aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--docs/en/developers/03_Backend/05_Extensions.md18
-rw-r--r--p/scripts/main.js3
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) {