我对Ajax完全不熟悉。在我们的网站上,我们有一个购物车页面,用户可以使用ajax添加,删除和更改项目数量,而无需为购物车执行整页加载。我的问题是,每当用户更新购物车商品时,我都需要拨打第三方外部电话。
我有这个调用jsp的ajax调用,它调用脚本的参数。现在这个jsp包含我理解需要单独解雇的第三方外部脚本。我正在下面添加我的代码,非常感谢有人可以提供帮助
var callExternalUpdate = function(secure) {
var ajaxParams = "secure=" + secure;
ajax('POST',
'/abc/my-ajax.jsp',
ajaxParams,
function(r) {
eval(r.responseText);
},
function(r) {
//alert(r.responseText);
}
);
}
下面是my-ajax.jsp
中的代码<script type="text/javascript" src="http://www.mywebsite.com/js/criteo_ld_0.5.4.js" async="true"></script>
<script type="text/javascript">var CRITEO_CONF = [[{
pageType: 'basket',
'Product IDs': [123],
'Prices': [10],
'Quantities': [1]
}], [6507,'ppr','us.','110',[[7721658, 7721659]],{'Product IDs':['i',1], 'Prices':['p',1], 'Quantities':['q',1]}]];
if (typeof (CRITEO) != "undefined") { CRITEO.Load(false); }
</script>
据我所知,我将省略标签,因为我在我的javascript中使用eval。但我如何调用外部JavaScript?
请帮忙。
TIA
答案 0 :(得分:0)
让 criteo_ld_0.5.4.js 加载您的页面,让JSP页面只返回没有任何脚本标记的java脚本表达式的值。
var CRITEO_CONF = [[{
pageType: 'basket',
'Product IDs': [123],
'Prices': [10],
'Quantities': [1]
}], [6507,'ppr','us.','110',[[7721658, 7721659]],{'Product IDs':['i',1], 'Prices':['p',1], 'Quantities':['q',1]}]];
if (typeof (CRITEO) != "undefined") { CRITEO.Load(false); }
答案 1 :(得分:0)
Magento CE or EE Criteo retargeting New OneTag
**Home Page - code :**
<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
<script type="text/javascript"> window.criteo_q = window.criteo_q || []; window.criteo_q.push( { event: "setAccount", account: **Your Account Number**}, { event: "setCustomerId", id: "<?php if(Mage::getSingleton('customer/session')->isLoggedIn()) {$customerData = Mage::getSingleton('customer/session')->getCustomer();echo $customerData->getId();
}?>"}, { event: "setSiteType", type: "d"}, { event: "viewHome"} ); </script>
**Listing Page Code :**
<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
<script type="text/javascript">
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: **Your Account Number**},
{ event: "setCustomerId", id: "<?php if(Mage::getSingleton('customer/session')->isLoggedIn()) {$customerData = Mage::getSingleton('customer/session')->getCustomer();echo $customerData->getId();
}?>"},
{ event: "setSiteType", type: "d"},
{ event: "viewList", item: [<?php
$cat_id = Mage::getModel('catalog/layer')->getCurrentCategory()->getId();
$category = Mage::getModel('catalog/category')->load($cat_id);
$products = $category->getProductCollection()
->addCategoryFilter($category)
->addAttributeToSort('entity_id','desc')
->addAttributeToFilter('type_id','configurable')
->addAttributeToSelect('sku');
$products->setPage(1, 3);
$skus = '';
foreach ( $products as $_product ):
$skus .= '"'.$_product->getSku().'",';
endforeach;
$skus = substr($skus,0,-1);
print($skus);
?>], keywords: "<?php echo $this->htmlEscape($this->getCurrentCategory()->getName()) ?>" } ); </script>
Product Page Code :
<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
<script type="text/javascript">
window.criteo_q = window.criteo_q || []; window.criteo_q.push(
{ event: "setAccount", account: **Your Account Number**},
{ event: "setCustomerId", id: "<?php if(Mage::getSingleton('customer/session')->isLoggedIn()) {$customerData = Mage::getSingleton('customer/session')->getCustomer();echo $customerData->getId();
}?>"},
{ event: "setSiteType", type: "d"},
{ event: "viewItem", item: "<?php echo $_product->getSKU() ?>" }
);
</script>
**Basket Page Code :**
<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
<script type="text/javascript">
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{event: "setAccount", account: **Your Account Number**},
{event: "setCustomerId", id: "<?php if(Mage::getSingleton('customer/session')->isLoggedIn()) {$customerData = Mage::getSingleton('customer/session')->getCustomer();echo $customerData->getId();
}?>"},
{event: "setSiteType", type: "d"},
{event: "viewBasket", item: [
<?php
$count = 0;
$cartLines = Mage::helper('checkout/cart')->getCart()->getItems();
foreach ($cartLines as $cartLine):
$count++;
$product = Mage::getModel('catalog/product')->load($cartLine->getProductId());
if ($product->getSpecialPrice()) {
$price = $product->getSpecialPrice();
} else {
$price = $product->getPrice();
}
/* Get Configurable Sku from Simple product SKU/ID.
* If there is no configurable/simple product set up, then just use the standard Sku display
* */
$parentId = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($cartLine->getProductId());
$configurableProductSku = Mage::getModel('catalog/product')->load($parentId)->getSku();
if ($configurableProductSku) {
$IdString .= $configurableProductSku;
}
else {
$idString .= $cartLine->getSku();
}
// $IdString .= $cartLine->getSku();
$PriceString .= $price;
$quantityString .= (int) $cartLine->getQty();
?>
<?php if( $count == count($cartLines)): ?>
{ id: "<?php echo $IdString; ?>", price: <?php echo number_format($PriceString,2,'.',' ')?>, quantity: <?php echo $quantityString ?> }
<?php else: ?>
{ id: "<?php echo $IdString; ?>", price: <?php echo number_format($PriceString,2,'.',' ')?>, quantity: <?php echo $quantityString ?> },
<?php endif; ?>
<?php
$IdString = '';
$PriceString = '';
$quantityString ='';
endforeach;
?>
]}); </script>
**Success Page Code:**
<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
<script type="text/javascript">
window.criteo_q = window.criteo_q || [];
window.criteo_q.push( {event: "setAccount", account: **Your Account Number**},
{event: "setCustomerId", id: "<?php if(Mage::getSingleton('customer/session')->isLoggedIn()) {$customerData = Mage::getSingleton('customer/session')->getCustomer();echo $customerData->getId();
}?>"},
{event: "setSiteType", type: "d"},
{event: "trackTransaction" , id: "<?php echo $this->getOrderId(); ?>", item: [
<?php
$count = 0;
foreach ($items as $item):
$count++;
/* Get Configurable Sku from Simple product SKU/ID.
* If there is no configurable/simple product set up, then just use the standard Sku display
* */
$parentId = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($item->getProductId());
$configurableProductSku = Mage::getModel('catalog/product')->load($parentId)->getSku();
if ($configurableProductSku) {
$IdString .= $configurableProductSku;
}
else {
$idString .= $item->getSku();
}
$PriceString .= $item->getPrice();
$quantityString .= (int)$item->getQtyOrdered();
?>
<?php if( $count == count($items)): ?>
{ id: "<?php echo $IdString; ?>", price: <?php echo number_format($PriceString,2,'.',' ')?>, quantity: <?php echo $quantityString ?> }
<?php else: ?>
{ id: "<?php echo $IdString; ?>", price: <?php echo number_format($PriceString,2,'.',' ')?>, quantity: <?php echo $quantityString ?> },
<?php endif; ?>
<?php
$IdString = '';
$PriceString = '';
$quantityString ='';
endforeach;
?>
]}); </script>
----------------------------------
And That's All ...