JS将Object中的元素插入到脚本中

时间:2016-10-08 16:48:40

标签: javascript

我的POS创建了一个包含当前订单详细信息的对象,作为传递这些变量以便在其他脚本中使用的方法,在本例中是我的联盟跟踪器。

问题是,我如何调用在我的联盟跟踪器脚本中插入这些元素?

对象是:

<script>
  window.order = {"id":128131,"number":"GMIFZHW9XR84M2","total":"29.9","name":"Some Name"}
</script>

还有几行,我有我的联盟跟踪器脚本

<div id='papSaleTrackingPlaceholder'></div>


<script type="text/javascript">
  (function(d,t) {
    var script = d.createElement(t); script.id= 'pap_x2s6df8d'; script.async = true;
    script.src = '//aff.ticket1.eu/scripts/d2f7zu4j0kx';
    script.onload = script.onreadystatechange = function() {
        var rs = this.readyState; if (rs && (rs != 'complete') && (rs != 'loaded')) return;

        PostAffTracker.setAccountId('default1');
var sale = PostAffTracker.createSale();
var obj = window.order;
console.log(window.order);
console.log(obj.total);
        sale.setTotalCost(obj.total);
        sale.setOrderID(obj.number);
        sale.setProductID('XXXXXX');
        sale.setCampaignID('a5b61064');

        try { PostAffTracker.track(); } catch (e) {}

    }
    var placeholder = document.getElementById('papSaleTrackingPlaceholder');
    placeholder.parentNode.insertBefore(script, placeholder);
    placeholder.parentNode.removeChild(placeholder);
  })(document, 'script');
</script>

在我的控制台日志中,我正确地获取了所有属性,但它们没有被传递给脚本。我如何将obj中的值传递给:

   sale.setTotalCost('xxxx');
    sale.setOrderID('XXXX');
    sale.setProductID('XXXX');

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

首先,检查&#34; window.order&#34;当你将它分配给另一个对象时会存在&#34; obj&#34;。

如果是这样,现在你应该可以从window.order创建obj,如下所示:

var obj = window.order

现在来自&#34; obj&#34;,您可以访问window.order的所有属性 您可以使用debug或仅使用console.log的obj.id来检查obj值; obj.total等...