JS Вставить элемент из объекта в скрипт

#javascript

#javascript

Вопрос:

Мой POS создает объект с деталями текущего заказа, чтобы передать эти переменные для использования в других сценариях, в данном случае в моем партнерском трекере.

Вопрос в том, как мне вызвать insert этих элементов в моем скрипте партнерского трекера?

Объект:

 <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 amp;amp; (rs != 'complete') amp;amp; (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. Я не уверен, вижу ли я здесь проблему… sale.setTotalCost(window.order.total); и то же самое с другими методами должно сделать это.

Ответ №1:

Прежде всего, проверьте, существует ли «window.order», когда вы присваиваете его другому объекту «obj».

Если это так, теперь вы должны иметь возможность создавать объект из window.order следующим образом:

 var obj = window.order
  

Теперь из «obj» у вас есть доступ ко всем свойствам window.order
Вы можете проверить значения obj с помощью отладки или просто с помощью консоли.журнал obj.id ; obj.всего и т.д…

Комментарии:

1. window.order существует.

2. console.log(obj.total); Выдает мне правильное значение на консоли, но sale.setTotalCost = (obj.total); не работает.

3. Вы пробовали это? Вам не нужно анализировать window.order, если это уже объект Javascript. Делая это, window.order копируется в «obj», и вы можете делать все, что хотите, со свойствами в нем, например: sale.setTotalCost(obj.total); // sale.setOrderID(obj.number); // ??? if this is the correct property // sale.setProductID(obj.id); // ??? if this is the correct property

4. почему бы не sale.setTotalCost(obj.total); вместо sale.setTotalCost = (obj.total); 😀

5. Это мой код прямо сейчас: PostAffTracker.setAccountId('default1'); var sale = PostAffTracker.createSale(); var obj = window.order; console.log(obj.total); console.log(window.order) sale.setTotalCost(obj.total); Значения верны в журнале консоли для obj.total и для window.order, но они не отображаются в sales.setTotalCost, кроме того, мой скрипт требует, чтобы я передавал их как (‘value’)