在页面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/

10-17 03:02