Reputation: 2246
On page A, I dynamically insert a prerender tag pointing to page B: <link rel="prerender" href="page B"/>
.
I want to know if prerender
fires an event when it is done loading page B which I can access from the javascript on page A.
If browsers don't have any support for this, is there any other workaround?
Upvotes: 0
Views: 317
Reputation: 472
Unfortunately the load and error events are not fired with the rel="prerender", the same in Chrome/Firefox (I don't know why).
Instead of that I use rel="preload" and everything is working fine (but just for Chrome)
Additionally you can to add the type of asset with as parameter
<link rel="preload" as="document" href="some.html">
My Typescript Method to create a link to download is the next:
private createLinkToPreload(externalHref: string): HTMLElement {
let linkElement = document.createElement("link");
linkElement.rel = "preload";
linkElement.href = externalHref;
let me = this;
linkElement.onload = () => {me.onElementPreloaded(externalHref)};
linkElement.onerror = () => {me.onElementPreloadError(externalHref)};
return linkElement;
}
private onElementPreloaded(externalHref: string) {
console.log(`${externalHref} preloaded`);
}
private onElementPreloadError(externalHref: string) {
console.log(`Error while preloading ${externalHref}`);
}
Upvotes: 1
Reputation: 592
link
tag fires a load event when it's done loading.
link.addEventListener('load', func(e));
or
link.onload = func;
For maximum browser support, don't use link
. Just get the file using AJAX.
Upvotes: 0