Only for internal usage.
Wrap any function into a consent-awaiting function. This allows you to e.g. overwrite every function
a WordPress theme or plugin is exposing to window
object.
A plugin exposes the following function which loads a Google Map to window
:
<script consent-skip-blocker="1">
window.mynested = {
another: {
loadGoogleMaps: (when) => {
console.log("I am loading https://google.com/maps");
}
}
}
jQuery(() => window.mynested.another.loadGoogleMaps("now"));
</script>
We can now override this method with the help of idx
and delay of the console.log
until consent for
Google Maps is given:
wrapFn(
{
object: idx(window, (window) => window.mynested.another),
key: "loadGoogleMaps"
},
["unblock", "https://google.com/maps"]
);
The example above can also be used in the following way to check for blocker rules for the given function body:
wrapFn(
{
object: idx(window, (window) => window.mynested.another),
key: "loadGoogleMaps"
},
"functionBody"
);
The above examples determine the consent by a defined Content Blocker. But you can also wait for consent by a defined
service with the help of the consent
API to check for a technical definition (HTTP Cookie, LocalStorage, ...):
wrapFn(
{
object: idx(window, (window) => window.mynested.another),
key: "loadGoogleMaps"
},
["consent", "http", "__SECURE", "*"]
);
And for the advanced usages, you can simply return your own boolean
or Promise
by passing your custom checker:
wrapFn(
{
object: idx(window, (window) => window.mynested.another),
key: "loadGoogleMaps"
},
() => {
return new Promise((resolve) => {
// [...]
});
}
);
If you are invoking wrapFn
at the very beginning of your HTML and you do not know, when the function which should
be overwritten is available, you can pass a function to object
so it gets retried to overwrite on interactive
and complete
state:
wrapFn(
{
object: () => idx(window, (window) => window.mynested.another),
key: "loadGoogleMaps"
},
() => {
return new Promise((resolve) => {
// [...]
});
}
);
The function(s) we want to override. If you pass a function you need to implement the overriding for the original function yourself. Otherwise you can pass an object defining the object itself and the appropriate key which holds the function so it gets overwritten automatically.
Allows you to define a function which needs to return a boolean
which allows synced execution.
If the return is a Promise
it will return the Promise
immediately, when the Promise
gets resolved the
original function gets invoked.
Function which calls original function when consent is given (depending on checkExecution
) or undefined
if an undefined function was passed as argument.
Generated using TypeDoc
If you pass in a function, it automatically gets retried to overwrite in
interactive
andcomplete
document.readyState
.