的rel ="预渲染"加载事件?预呈现完成时通知用户

时间:2016-03-17 16:33:23

标签: javascript html prerender

在页面A上,我动态插入指向页面B的prerender标记:<link rel="prerender" href="page B"/>

我想知道prerender在加载页面B时是否会触发事件,我可以从第A页的javascript访问该页面。

如果浏览器对此没有任何支持,还有其他解决方法吗?

2 个答案:

答案 0 :(得分:1)

不幸的是, rel =“prerender”没有触发加载和错误事件,Chrome / Firefox也是如此(我不知道为什么)。

而不是我使用 rel =“preload”,一切正常(但仅适用于Chrome)

此外,您可以使用作为参数

添加资产类型
<link rel="preload" as="document" href="some.html">

My 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}`);
}

答案 1 :(得分:0)

link标记在加载完成后会触发加载事件。

link.addEventListener('load', func(e));

link.onload = func;

要获得最大的浏览器支持,请不要使用link。只需使用AJAX获取文件。