0

我正在尝试在dom-repeat模板中提取产品图像,但404由于缺少资源出现在console.log. 我想用更多合法错误清理日志。

<template is="dom-repeat" items="" index-as="index">
  <lazy-image class="center"
    placeholder="/images/placeholder.png"
    src="https://www.images.com/[[formatImg(item.id)]].png"
    style="width: 24pt; height: 24pt;">
  </lazy-image>       
</template>

...

formatImg(id) {
  if(typeof id != 'null') return id.replace(' ', '%20');
}

我看过一些关于on-error事件的文档,但没有看到将它们实现到 Polymer 框架中的直接路径。

有没有办法处理这些GET请求,以免它们被记录?

4

1 回答 1

1

简短的回答:

可悲的是没有。

这不是“在 Polymer 中做不到”的事情。在撰写本文时,从开发人员的角度来看,根本不可能处理 404 以防止控制台错误。

更长的答案:

AFAICT Web 开发人员无法阻止 404 被浏览器记录为错误。如果浏览器被问到“请拿这个东西”甚至“嘿,你能检查一下这是不是一个东西吗?” 答案是“这不是一件事”,这取决于浏览器如何处理这些信息。现在,它的作用(无论如何,Chrome - 我还没有研究其他人的作用)是“将错误记录到控制台”。总是。无论。

您可以(作为最终用户)在浏览器中关闭该行为。但是您不能(作为开发人员)“捕捉”错误并处理它以使浏览器满意。即使您确实处理了错误并为浏览器提供了一些存在而不是导致 404 的资源,它仍将作为错误记录在控制台中:

<!-- STILL CAUSES A 404 ERROR TO BE LOGGED TO THE CONSOLE -->
<img id="myimg" src="imagethatdoesntexist.gif" onerror="this.onerror=null;this.src='imagethatexists.gif';">

资料来源:反复试验 && 这个线程https://bugs.chromium.org/p/chromium/issues/detail?id=124534#c17

于 2018-06-20T00:35:37.227 回答