2016-10-26 9 views
1

나는 어제부터 푸시 방식으로 배열을 전달하려고 노력 해왔다.JS 추적 코드 푸시 방식의 배열 추가

크리 테오라는 추적 코드가 있으며 작동하도록하려면 다음을 채워야합니다. viewBasket을 제외한 모든 것이 좋습니다.

<script type="text/javascript"> 
    window.criteo_q = window.criteo_q || []; 
    window.criteo_q.push(
    { event: "setAccount", account: 11111 }, 
    { event: "setEmail", email: "[email protected]" }, 
    { event: "setSiteType", type: "d" }, 
    { event: "viewBasket", item: [ 
    { id: "product_id_1", price: price_1, quantity: quantity_1 }, 
    { id: "product_id_2", price: price_2, quantity: quantity_2 } 
    /* add a line for each item in the user's basket */ 
    ]} 
); 
</script> 

그래서 배열을 작성하고 (제품 번호, 가격 및 금액 임) 크리 테오 필요한 데이터로 채워. 콘솔에서 올바른 구조를 볼 수 있지만 코드에서 전달하면 작동하지 않습니다. I이 볼 수있는 콘솔

(제 1 부분은 I 배열로 밀어 두 라인이고, 두 번째는 전체 배열) : 정확

{ id:"20020-278", price: 119, quantity: 1}, 
{ id:"20009-129", price: 927, quantity: 3}, 

Array[2] 
0: "{ id:"20020-278", price: 119, quantity: 1}," 
1: "{ id:"20009-129", price: 927, quantity: 3}," 
length: 2__proto__: Array[0] 

I이 원하는 것에 따라 특정 이유로 수행 작동하지. JSON 배열로 변환하려고했거나 변수가없는 일반 라인을 전달했지만 여전히이 문제가 있습니다.

enter image description here

: 나는 또한 그 기호 { ..
<script type="text/javascript"> 
    ... 
    ... 
    var full_line = "\{ id:\""+pid+"\", price: "+price+", quantity: "+quantity+"\},"; 
    //var full_line = "\{ id:20020-278, price:119, quantity:1\},"; 
    //var full_lineJson = JSON.stringify(full_line); 

    console.log(full_line); 
    allitems.push(full_line); 
</script> 

내가 크리 테오 디버그 페이지에서

<script type="text/javascript"> 
    window.criteo_q = window.criteo_q || []; 
    window.criteo_q.push(
    { event: "setAccount", account: 11111 }, 
    { event: "setEmail", email: "[email protected]" }, 
    { event: "setSiteType", type: "d" }, 
    { event: "viewBasket", item: [ 
     allitems 
    ]} 
); 
</script> 

는 다음과 같이 표시됩니다 크리 테오 코드에서 'allitems'배열을 통과 탈출

결과는 다음과 같아야합니다.

Product ID Price Quantity 
20010-278  69  1 

그러나 구조가 어떻게 든 부러진 것을 알 수 있습니다. 나는 여러 가지 방법으로 시도했지만 여전히이 문제를 해결할 수 없었습니다. 배열에 구조체에 문제가 있습니다. 그러나 내가 무엇을 할 수 있는지 잘 모르겠습니다. 어떤 제안을 해주시겠습니까? 제품 ID 정보가 누락 :

편집 : 내가 객체를 전달하면 내가 객체를 사용할 때

Object {product_id: "20020-278", price: "119", quantity: "1"} 
Object {product_id: "20009-129", price: "927", quantity: "3"} 

Array[2] 
0: Object 
price: "119" 
product_id: "20020-278" 
quantity: "1" 

__proto__: Object 

1: Object 
price: "927" 
product_id: "20009-129" 
quantity: "3" 

__proto__: Object 

length: 2__proto__: Array[0] 

크리 테오 사이트는이 오류를 표시 "항목"속성이 누락 된 코드는 내가 사용

객체 :

<script type="text/javascript"> 
    ... 
    var full_line = {}; 
     full_line.product_id = product_id; 
     full_line.price = price; 
     full_line.quantity = quantity; 
    allitems.push(full_line); 
    ... 
</script> 

그럼 난 그냥 크리 테오 "viewBasket"항목 속성 내부의 allitems을 사용했다.

+2

이 콘솔의 출력 인 경우 :'0 : "{ID :"20020-278 ", 가격 : 119, 수량 : 1}"'당신이 밀고 문자열, 객체가 아님 – Rajesh

+0

객체를 푸시해야합니까? 저는 Criteo의 구조를 100 % 따르고 싶었습니다. (모든 기호 포함) : {id : "product_id_1", price : price_1, quantity : quantity_1}, – giancy9

+0

Criteo **는 ** 객체를 사용합니다. – Weedoze

답변

0

var firstLine = { 
 
    product_id: "20020-278", 
 
    price: "119", 
 
    quantity: "1" 
 
}; 
 
var secondLine = { 
 
    product_id: "20009-129", 
 
    price: "927", 
 
    quantity: "3" 
 
}; 
 

 
var items = []; 
 
items.push(firstLine); 
 
items.push(secondLine); 
 

 
var myObj = { 
 
    event: "viewBasket", 
 
    item: items 
 
}; 
 

 
console.log(myObj); 
 

 
//window.criteo_q = window.criteo_q || []; 
 
//window.criteo_q.push({ 
 
// event: "setAccount", 
 
// account: 11111 
 
//}, { 
 
// event: "setEmail", 
 
// email: "[email protected]" 
 
//}, { 
 
// event: "setSiteType", 
 
// type: "d" 
 
//}, myObj);

+0

안녕하세요, 도움에 감사드립니다. 지금 시도해보고 알려 드리겠습니다 – giancy9

+0

시도했지만 "Product ID info missing :"item "property is missing"오류가 인쇄됩니다. 어쩌면 다시 객체 구조와 관련이있을 것입니까? 정확하게 모르겠다 :(당신이 제안했지만 여전히 작동하지 않는 코드를 변경했습니다.) – giancy9

+0

최종 객체 표시 – Weedoze