1

Я хотел бы исправить конкретную ошибку веб-сайта с расширением, которое я делаю.Расширение Chrome - Исправить img tag onerror бесконечный цикл

(объяснит сайт в простых терминах)

На сайте есть альбом, и как она работает, что каждый альбом имеет количество изображений х и каждое изображение имеет свою собственную страницу, например: 1.html. На каждой странице есть одно изображение, которое, как я полагаю, динамически генерируется. По какой-то причине иногда на последней странице в альбоме IMG тег выглядит следующим образом:

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

Таким образом, это приводит к хромом застряли в бесконечном цикле регистрации следующее:

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

Это вызывает мой компьютер, и я уверен, что кто-то еще, кто использует этот сайт, сильно рискует в результате этой ошибки.

Я хочу исправить эту проблему с расширением, так что мой вопрос в том, можно ли исправить эту проблему с помощью расширения? если да, то как? Я попытался установить атрибут onerror и src в пустую строку, и кажется, что src из img постоянно обновляется каким-то образом, что приводит к тому, что ошибка все еще уходит.

Here's пример задачи (предупреждение может запаздывать ваш хром, если вы остаетесь на странице слишком долго!)

ответ

3

Удалите onerrorатрибут:

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

Использование img.onerror = null в сценарии содержимого не работает, из-за isolation of JavaScript execution contexts: onerrorсвойство невидимо для вашего скрипта содержимого.

+0

ааа так вот почему он не будет работать, спасибо так много, что теперь работает :) – Vemon

0

В качестве альтернативы, вот JQuery-бесплатное решение:

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

полностью и совершенно не имеет значения. – Xan

+0

@Xan, как это не имеет значения? Он имеет ту же функциональность, что и принятый ответ, за исключением того, что он не полагается на jQuery. [Здесь рабочая скрипка] (http://jsfiddle.net/7nk9aocx/) – Nic

+0

Вы предлагаете сделать именно это? Код веб-сайта не находится под контролем OP. Он создает расширение, чтобы взаимодействовать с ним. – Xan

Смежные вопросы