Для начала немного предыстории. То, что я пытаюсь сделать, — это обработчик ошибок на стороне клиента для моего JSF-приложения для изображений, который делает что-то всякий раз, когда изображение не загружается. Что-то немного сложное, поэтому я выберу простой пример, который делает что-то похожее, переписывая атрибут src в другое изображение. Кроме того, мои изображения хранятся на Amazon S3, поэтому запросы изображений не проходят через фильтры в моем JSF-приложении, и я хотел бы, чтобы так и оставалось.
По сути, я хочу сделать это для ВСЕХ приложений изображений (с некоторыми украшениями):
$('img').error(function() {
var newImage = 'somethingbasedofftheoriginalurl.jpg'; //pseudocode
$(this).attr('src','newImage');
}
Проблема, с которой я столкнулся, заключается в том, что она не работает для динамических списков или сеток, таких как Primefaces DataGrid. Он добавит обработчик ошибок для изображений на первой странице, но не для последующих страниц при использовании пагинатора. Очевидно, он прикрепляет обработчик только к элементам, которые существовали на момент вызова $('img')
.
К точке:
Есть ли способ подключить универсальный обработчик ошибок на стороне клиента для ВСЕХ изображений в масштабе всего приложения в моем приложении JSF? Это не обязательно должен быть jQuery, но наличие его на стороне клиента необходимо, вплоть до того момента, когда все говорят мне, что это невозможно... Кроме того, важно иметь этот код в как можно меньшем количестве мест. . Я не могу добавлять его на каждую чертову xhtml-страницу во всем моем приложении.