Запрос изображения JSONP не зацикливается?
Я сделал запрос к scene7, чтобы проверить, существует ли изображение продукта, если оно существует, jsonp возвращает это:
/*jsonp*/checkS7SubProductImageExists({"catalogRecord.exists":"1"},"");
Сайт загружает шаблон для каждого продукта, код существует для каждого продукта, но, хотя сценарий повторяется, он работает только для последнего продукта, а не для каждого продукта на странице. Есть идеи почему?
<script>
dojo.io.script.get({
url: '${scene7Path}${skuDetails.partNumber}?req=exists,json&handler=checkS7SubProductImageExists',
error: function(error){
console.debug("Problem retrieving the ImageSet");
}
});
function checkS7SubProductImageExists(results) {
var output_${skuDetails.partNumber} = document.getElementById("item_image_${skuDetails.partNumber}");
if (results['catalogRecord.exists'] == 1) {
var img = '<img src="${env_schemeToUse}://site.scene7.com/is/image/Site/${skuDetails.partNumber}?fmt=png&op_usm=1,1,1,0&id=ZeUq72&fmt=jpg&fit=constrain,1&wid=300&hei=300&fmt=png&op_usm=1,1,1,0">';
}
output_${skuDetails.partNumber}.innerHTML = img;
}
</script>
<div class="item_image">
<a onClick="showItemDialog(${skuDetails.uniqueID}, '${skuDetails.partNumber}', '${iconi_promo_val}', '${iconi_left_val}', '${brand_logo_val}', '${pack_size_val}');return false;" href="#">
<div id="item_image_${skuDetails.partNumber}">
</div>
</a>
</div>
1 ответ
Решение
Это не очень понятно, но из того, что я понял, вы копируете часть кода в своем вопросе снова и снова.
Если это правильно, то у вас есть конфликт имен для вашей функции checkS7SubProductImageExists
, Вы переопределяете это снова и снова, но "может существовать" только один: последний...
Попробуйте что-то вроде ниже.
Обратите внимание: это ЧРЕЗВЫЧАЙНО некрасивый кусок кода...!
<script>
var functionHandlerName = 'checkS7SubProductImageExists${skuDetails.partNumber}';
dojo.io.script.get({
url: '${scene7Path}${skuDetails.partNumber}?req=exists,json&handler=' + functionHandlerName,
error: function(error){
console.debug("Problem retrieving the ImageSet");
}
});
window[functionHandlerName] = function(results) {
var output_${skuDetails.partNumber} = document.getElementById("item_image_${skuDetails.partNumber}");
if (results['catalogRecord.exists'] == 1) {
var img = '<img src="${env_schemeToUse}://site.scene7.com/is/image/Site/${skuDetails.partNumber}?fmt=png&op_usm=1,1,1,0&id=ZeUq72&fmt=jpg&fit=constrain,1&wid=300&hei=300&fmt=png&op_usm=1,1,1,0">';
}
output_${skuDetails.partNumber}.innerHTML = img;
}
</script>
<div class="item_image">
<a onClick="showItemDialog(${skuDetails.uniqueID}, '${skuDetails.partNumber}', '${iconi_promo_val}', '${iconi_left_val}', '${brand_logo_val}', '${pack_size_val}');return false;" href="#">
<div id="item_image_${skuDetails.partNumber}">
</div>
</a>
</div>