Chrome扩展程序 - 修复错误无限循环时的图像标签

Chrome Extension - Fix img tag onerror infinite loop

本文关键字:无限循环 图像 标签 错误 扩展 程序 Chrome      更新时间:2023-09-26

我想用我正在制作的扩展来修复网站的一个特定错误。

(用简单的术语解释网站(

该网站有一个相册,

它的工作方式是每个相册都有一个x数量的图像,每个图像都有自己的页面,例如:1.html 。每个页面上都有一个图像,我假设它是动态生成的。出于某种原因,有时在相册的最后一页上,img 标签如下所示:

<img id="image" src="mainsite.com/album1/images/" onerror="this.src='mainsite.com/album1/images/'">

因此,这导致chrome陷入无限循环,记录以下内容:

Resource interpreted as Image but transferred with MIME type text/html: "mainsite.com/album1/images/".

这会导致我的计算机,我相信使用该站点的其他任何人都会因为此错误而滞后。

我希望通过扩展程序解决此问题,所以我的问题是,是否可以使用扩展程序解决此问题? 如果是这样,如何?我尝试将 onerror 和 src 属性设置为空字符串,似乎 img 的 src 以某种方式不断更新,导致错误仍然关闭。

这是该问题的示例(警告!如果您在页面上停留时间过长,它可能会滞后您的 chrome(

删除onerror属性

document.getElementById('image').removeAttribute('onerror');
// or if you use jQuery: $('#image').removeAttr('onerror');

在内容脚本中使用img.onerror = null不起作用,因为 JavaScript 执行上下文的隔离:页面的 onerror 属性对内容脚本不可见。

作为替代方案,这里有一个无jQuery的解决方案:

<img src="image.png" onerror="this.src='image.png'; this.onerror = null" />