首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Ajax调用加载外部javascript

如何通过Ajax调用加载外部javascript
EN

Stack Overflow用户
提问于 2013-08-17 02:06:14
回答 2查看 2.5K关注 0票数 0

我对Ajax完全是个新手。在我们的网站上,我们有一个购物车页面,在那里用户可以添加,删除和更改数量的项目使用ajax没有做整个页面加载购物车。我的问题是,每当用户更新他的购物车项目时,我需要触发一些第三方外部呼叫。

我有一个ajax调用,它调用jsp来计算脚本的参数。现在这个jsp包含了第三方外部脚本,据我所知需要单独启动。我正在将我的代码添加到下面,如果有人能帮助我,我将不胜感激

代码语言:javascript
复制
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中的代码

代码语言:javascript
复制
<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.But中使用了eval,如何调用外部javascript?

请帮帮忙。

提亚

EN

回答 2

Stack Overflow用户

发布于 2013-08-17 04:17:53

criteo_ld_0.5.4.js与您的页面一起加载,并让JSP页面只返回java脚本表达式的值,而不返回任何脚本标记。

代码语言: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); }
票数 0
EN

Stack Overflow用户

发布于 2013-11-26 05:56:01

代码语言:javascript
复制
        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  ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18279562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档