我可以获得在Magento页面上搜索不需要的JavaScript的建议吗?

时间:2012-05-04 21:00:33

标签: javascript magento

我在Magento 1.7安装上有一个产品页面,其产品具有分层定价。它应该说买入4并保存13%,它在一瞬间完成,然后13%的值被100%覆盖(这是不正确的)。我只能假设页面上有一些错误的JavaScript导致了这种情况,但我不知道如何找到它。有人可以给我一些关于如何找到并修复这个bug的建议吗?

以下是页面:http://makethemostof.co.uk/lace-print-cushions

4 个答案:

答案 0 :(得分:7)

查看Chrome检查器中的HTML元素:class="benefit"

在“资源”标签中搜索“.benefit”,1匹配,在loupe.js文件中。

转到Scripts选项卡,loupe.js文件,美化代码,搜索“.benefit”。

       $$('.benefit').each(function(el) {
            var parsePrice = function(html) {
                return parseFloat(/\d+\.?\d*/.exec(html));
            };
            var container = $(this.containers[3]) ? this.containers[3] : this.containers[0];
            var price = parsePrice($(container).innerHTML);
            var tierPrice = $$('.price.tier-' + i);
            tierPrice = tierPrice.length ? parseInt(tierPrice[0].innerHTML, 10) : 0;
            var $percent = Selector.findChildElements(el, ['.percent.tier-' + i]);
            $percent.each(function(el) {
                el.innerHTML = Math.ceil(100 - ((100 / price) * tierPrice));
            });
        }, this);

感谢Chrome Inspector,在不到一分钟的时间内找到了该脚本。

现在,这是罪魁祸首:

el.innerHTML = Math.ceil(100 - ((100 / price) * tierPrice));

这是一个简单的数学计算。我不知道tierPrice是什么,但我相信您可以找到适合您业务的正确计算(Math.ceil汇总数字)。

答案 1 :(得分:2)

实际上它是

for (var i > 0; i < this.tierPrices.length; i++) {

如果您将其替换为1,它将只计算第一层价格的正确储蓄%,之后不会为其他价格计算,它们仍将设置为100%。

虽然他需要为所有等级计算它,所以如果i大于0,他需要计算正确的等级%,否则它与产品价格相同或等于0或100 %

希望有所帮助

答案 2 :(得分:0)

对于那些对Magento 1.7中的错误感兴趣的人,其中等级价格节省总是显示为100%,这是修复:

在js / varien / product.js中,在第748行更改以下内容:

for (var i = 0; i < this.tierPrices.length; i++) {

for (var i > 1; i < this.tierPrices.length; i++) {

答案 3 :(得分:0)

虽然这是一篇很好的帖子,试图找到问题的根源,我发现页面上的解决方案只是阻止代码运行,但实际上并没有解决问题。我在这里发布了一个解决这个问题的方法:

https://stackoverflow.com/a/16022796/159341