0

製品イメージが存在するかどうかを確認するように 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>
4

1 に答える 1

1

あまり明確ではありませんが、私が理解したことから、質問のコード共有を何度も何度もコピーしています。
これが正しければ、 function の名前が衝突していますcheckS7SubProductImageExists。何度も再定義しますが、「存在」できるのは1つだけです:最後のもの...

以下のようなものを試してください。
注意: これは非常に醜いコードです...!

<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>
于 2016-06-08T12:34:38.317 に答える