У меня есть html-изображение, помеченное следующим образом
<image src = 'image.png' onerror = "handleError(this)" onload = "handleLoad(this)">
function handleError(n){
getFirstChild(n.parentNode).style.display = '',n.style.display = 'none';
}
function handleLoad(n){
getFirstChild(n.parentNode).style.display = 'none',n.style.display = '';
}
У меня есть отдельная функция getFirstChild, но она не имеет ничего общего со следующей проблемой.
По сути, в IE 11 происходит то, что обработчик onLoad запускается, и моя функция правильно настраивает дисплеи, однако сразу после запуска onload также запускается onerror и перезаписывает то, что сделала функция handleLoad. К сожалению, это приложение поддерживается только в браузере IE, но это происходит только в версии IE11, в IE10 это работает как положено.
Я не уверен, как может срабатывать onLoad, а затем onError срабатывает сразу после того, как onLoad находит изображение из src.
ВТОРОЕ РЕДАКТИРОВАНИЕ
Как видно из комментария ниже, я не могу воспроизвести это в jfiddle в IE11. Это может быть из-за разных вещей, которые мой код пытается сделать одновременно, но есть ли способ понять, почему сработал обработчик onerror? Я попытался распечатать src элемента изображения, но это, похоже, не проблема, поскольку и onError, и onLoad возвращают один и тот же src, и изображение явно присутствует. Во всяком случае, я могу видеть, что вызывает срабатывание onError?