2013-08-16 61 views
0

我对Ajax完全陌生。在我们的网站上,我们有一个购物车页面,用户可以使用ajax添加,删除和更改物品数量,而无需为购物车整页加载。我的问题是,当用户更新他的购物车项目时,我需要启动一些第三方外部呼叫。如何通过Ajax调用外部javascript

我有这个ajax调用哪个调用评估脚本参数的jsp。现在这个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); 
     } 
    ); 
} 
下面

是我-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> 

我知道我会为我使用被忽略的标签代码eval在我的javascript.But如何调用外部JavaScript?

请帮忙。

TIA

+0

http://api.jquery.com/jQuery.getScript/ –

+0

谢谢Diodeus。除了使用jQuery之外的任何其他方式? – user1633800

+0

您可以将 user1633800

+0

在评估之后添加此行。 document.write(unescape(“%3Cscript src ='mywebsite.com/js/criteo_ld_0.5.4.js'async ='true'type ='text/javascript'%3E%3C/script%3E”)); – Keval

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 ...