简体   繁体   English

JSONP图片请求未循环?

[英]JSONP image request not looping?

I have made a request to scene7 to check if a product image exsists, if it does, the jsonp returns this: 我已向scene7发出请求,以检查是否存在产品图片,如果存在,则jsonp返回以下内容:

/*jsonp*/checkS7SubProductImageExists({"catalogRecord.exists":"1"},"");

The site loads the template for every product, the code is there for every product, but even though the script is repeated, it only only works for the last product, not every product on the page. 该站点为每个产品加载模板,为每个产品加载代码,但是即使重复脚本,它也仅适用于最后一个产品,而不适用于页面上的每个产品。 Any ideas why? 有什么想法吗?

<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>

It is not very clear but from what I understood you are copying the piece of code share in your question over and over and over. 这还不是很清楚,但是据我了解,您正在一遍又一遍地复制问题中的代码段。
If this is correct, then you have a name collision for you function checkS7SubProductImageExists . 如果正确,则函数checkS7SubProductImageExists会发生名称冲突。 You redefine it over and over, but only one can "exist" : the last one... 您一遍又一遍地重新定义它,但是只有一个可以“存在”:最后一个...

Try something like bellow. 尝试下面的方法。
Please note: this is an EXTREMELY ugly piece of code...! 请注意:这是一段极其丑陋的代码...!

<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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM