Chrome扩展程序 - 修复img标记onerror无限循环

时间:2014-12-12 08:37:39

标签: javascript jquery html google-chrome-extension error-handling

我想用我正在制作的扩展程序修复网站的特定错误。

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

该网站有一张专辑,其工作方式是每张专辑都有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不断以某种方式更新,导致错误仍然消失。

Here's问题的一个例子(警告!如果你在页面停留的时间过长,它可能会滞后你的铬)

2 个答案:

答案 0 :(得分:4)

删除onerror 属性

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

在内容脚本中使用img.onerror = null不起作用,因为isolation of JavaScript execution contexts:页面的onerror 属性对您的内容脚本不可见。

答案 1 :(得分:0)

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

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