У меня есть функция, которую я использую для замены аватаров игроков на пользовательские изображения. Пока что у меня есть 3 из них, и я встроил статические ссылки для замены в расширение Chrome. Вместо этого я хотел бы, чтобы функция смотрела на внешний текстовый файл для создания массива, чтобы я мог добавлять новые проигрыватели без необходимости каждый раз переиздавать расширение. Я могу просто добавить новые пары ссылок в текстовый файл.
Внешний файл replacer.txt:
{
"replaced": [
{
"original": "/imgs/avatar/generated/26_1114_1115_836_937_952_856_1100_904_875_863_922_840_503.png",
"newone": "https://cbsargecom.ipage.com/imgs/FJinstead.png"
},
{
"original": "/imgs/avatar/generated/15_140_118_1168_1519_574_306_982_181_125.png",
"newone": "https://cbsargecom.ipage.com/imgs/ZXGinstead.png"
},
{
"original": "/imgs/avatar/generated/26_1114_1452_1115_2092_925_1102_847_914_1126_967_1125_871_2082_2080.png",
"newone": "https://cbsargecom.ipage.com/imgs/skelinstead.png"
}
]
}
Функция, являющаяся частью моего расширения Chrome:
$.getJSON('https://cbsargecom.ipage.com/imgs/replacer.txt', function (data) {
$.each(data, function () {
$('a.avatarContainer img').each(function(){
$(this).attr('src', $(this).attr('src').replace(data.replaced.original[0], data.replaced.newone[0]));
});
});
});
Это просто генерирует Uncaught TypeError: Невозможно прочитать свойство '0' неопределенного в консоли.
Сработавшая функция была
$('a.avatarContainer img').each(function(){
$(this).attr('src', $(this).attr('src').replace("/imgs/avatar/generated/26_1114_1115_836_937_952_856_1100_904_875_863_922_840_503.png", "https://cbsargecom.ipage.com/imgs/FJinstead.png"));
$(this).attr('src', $(this).attr('src').replace("/imgs/avatar/generated/15_140_118_1168_1519_574_306_982_181_125.png", "https://cbsargecom.ipage.com/imgs/ZXGinstead.png"));
$(this).attr('src', $(this).attr('src').replace("/imgs/avatar/generated/26_1114_1452_1115_2092_925_1102_847_914_1126_967_1125_871_2082_2080.png", "https://cbsargecom.ipage.com/imgs/skelinstead.png"));
});