在页面A上,我动态插入指向页面B的prerender标记:<link rel="prerender" href="page B"/>
。
我想知道prerender
在完成加载页面B时是否触发事件,可以从页面A上的javascript访问。
如果浏览器对此不提供任何支持,是否还有其他解决方法?
最佳答案
不幸的是,加载和错误事件没有使用rel =“ prerender”触发,与Chrome / Firefox中的事件相同(我不知道为什么)。
取而代之的是,我使用rel =“ preload”,并且一切正常(但仅适用于Chrome)
另外,您可以使用参数添加资产类型
<link rel="preload" as="document" href="some.html">
接下来是我的Typescript方法来创建要下载的链接:
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}`);
}
关于javascript - rel =“prerender”加载事件?预渲染完成时通知用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36066538/