0

我在我们的 magento 中启用了安全购物车。之后,添加到购物车按钮不起作用。我的主题有自定义 ajax 添加到购物车按钮。然后我在我的模板 js 代码中添加了以下代码并开始工作的产品列表页面的添加到购物车按钮。但是,我无法弄清楚我应该如何更改产品视图(详细信息)页面的添加到购物车按钮代码,因为它也不起作用。我需要它们和我的安全购物车。我的产品详细信息页面在 http 协议下。如果我使用 https 手动输入产品详细信息页面,则添加到购物车按钮有效。但是,我需要它在 http 产品详细信息页面下工作,并与安全购物车页面一起工作。我应该如何更改 javascript 代码或任何其他代码?

我的代码

        if (window.location.protocol == "https:") {
        url=url;    
        }else{
        url=url.replace("https://","http://");  
        }

我的主题:http ://demo.galathemes.com/#gala-gearbox

这是完成这项工作的主题 javascript 代码:

var test;            
Event.observe(window, 'load', function () {
    var containerDiv = $('containerDiv');
    if(containerDiv)
        test = new LightboxAJC(containerDiv);
}); 
function cart_form(url)
{    
    data    =    $('product_addtocart_form').serialize();
    ajax_add(url,data);
}

function ajax_add(url,param)
    {

        tam        =    url.search("checkout/");
        tam2    =    url.search("product/");
        str1    =    url.substr(0,tam)+'ajaxcart/index/add/';
        str2    =    url.substr(tam2,url.length);
        link    =    str1+str2;
        var check = url.search("options");        
        if(check > 0){
            window.location.href = url;
        }
        else{
            var tmp        =    url.search("in_cart");
            test.open();
            new Ajax.Request(link, {
                parameters:param,
                onSuccess: function(data) {
                    if(tmp > 0 ) {
                        var host    =    find_host(url);
                        window.location.href = host+'index.php/checkout/cart/';
                    }
                    else{
                        //result    =    data.responseText;alert(result);                
                        $('ajax_content').innerHTML = data.responseText;

                        if($('ajax_content').down('.top-link-cart')){
                            var count_cart = $('ajax_content').down('.top-link-cart').innerHTML;                                
                            $$('.top-link-cart').each(function (el){
                                el.innerHTML = count_cart;
                            });
                        }

                        if($('ajax_content').down('.block-cart')){
                            var ajax_product = $('ajax_content').down('.block-cart').innerHTML;    
                            $$('.block-cart').each(function (el){
                               el.innerHTML = ajax_product;            
                            });
                        }

                        if($('ajax_content').down('.col-main')){
                            var ajax_result = $('ajax_content').down('.col-main').innerHTML;                
                            $$('.ajaxcart_row1').each(function (el){
                               el.innerHTML = ajax_result;            
                            });
                        }

                        $('ajax_loading').hide();
                        $('ajaxcart_conent').show();
                        Event.observe('closeLink', 'click', function () {                    
                            test.close();
                            $$('.ajaxcart_row1').each(function (el){
                               el.innerHTML = '';            
                            });
                            $('ajax_loading').show();
                        });    
                    }
                }
            });
        }
    }

function setLocation(url){
    if (window.location.protocol == "https:") {
    url=url;    
    }else{
    url=url.replace("https://","http://");     
    }

    var tam        =    url.search("checkout/cart/");
    if(tam > 0)    ajax_add(url);    
    else    window.location.href = url;
}    

document.observe("dom:loaded", function() {

    var cartInt = setInterval(function(){
        if (typeof productAddToCartForm != 'undefined'){

            if(test){
                var tam    =    $('product_addtocart_form').serialize();
                var check = tam.search("ajaxcart");        
                if(check < 0){                        
                    productAddToCartForm.submit = function(url){
                        if(this.validator && this.validator.validate()){                                        
                            cart_form($('product_addtocart_form').readAttribute('action'));
                            clearInterval(cartInt);
                        }
                        return false;
                    }
                }
            }
        } else {
            clearInterval(cartInt);
        }
    },500);

}); 

function find_host(url)
{
    var tmp        =    url.search("index.php");
    var str        =    url.substr(0,tmp)
    return str;
}
4

1 回答 1

1

这是适用于所有页面的解决方案!很简单。。

if (window.location.protocol == "http:") {
url=url.replace("https://","http://");      
}   
于 2012-08-04T14:38:31.240 回答