我已經在我們的magento中啓用了安全購物車。之後,添加到購物車按鈕不起作用。我的主題有自定義ajax添加到購物車按鈕。然後,我在我的模板js代碼中添加了以下代碼,並添加到產品列表頁面的購物車按鈕開始工作。但是,我無法弄清楚我應該如何更改產品視圖(詳細信息)頁面的添加到購物車按鈕代碼,因爲它不工作。我需要他們與我的安全車。我的產品詳細信息頁面在http協議下。如果我使用https手動輸入產品詳細信息頁面,則可以使用添加到購物車按鈕。但是,我需要它在http產品詳細信息頁面下工作,並且可以與安全購物車頁面一起使用。我應該如何更改JavaScript代碼或任何其他代碼?Magento添加到購物車ajax按鈕不與安全(https)購物車一起使用
我的代碼
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;
}
哎呀,我的代碼可能是僅當(window.location.protocol == 「HTTP:」){ URL = url.replace( 「https://開頭」,「HTTP: //「); } – Robi 2012-07-27 16:50:07
您是否測試過控制檯上的任何錯誤? – 2012-07-27 20:27:23
我找到了解決方案。感謝您的建議! – Robi 2012-08-04 14:39:41