#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’)