2014-09-12 2 views
1

이 코드를 사용하여 creativeId이 null인지 확인했지만 갑자기 작동이 중지되었습니다.creativeId가 null인지 확인하는 방법

googletag.pubads().addEventListener('slotRenderEnded', function(event) { 
    if(event.slot.k.indexOf('_super_superior')>0) { 
     if(event.creativeId!=null) { 
      alert('DFP'); 
     } 
     else { 
      alert('Adsense'); 
     } 
    } 
}); 

이제는 creativeId가 항상 정의되지 않은 상태이므로이 기능을 실행할 수없는 것 같습니다.

creativeId이 null 인 경우 다른 방법으로 DFP와 AdX는 어떤 광고인지 감지 할 수 있습니까?

감사합니다.

답변

1

이 같은 시도 할 수 있습니다 :

if(event.creativeId!=null || event.creativeId!= undefined) 
+2

왜 downvote? –

+0

아마도 편집하기 전에 잘못 되었기 때문일 것입니다. – GillesC

+0

@ gillesc : - 그렇습니다. 오타 였지만 고정 된 순간이었습니다. ( –

1

undefined대로 작동하지 않습니다 문자열 'undefined'에 대해 확인이 시도되지 않은 문자열, typeof 결과에 대해 검사 할 때 'undefined' 인 문자열.

if (event.creativeId!=null || event.creativeId != undefined) 

JS Fiddle

typeof 방법

그러나 nullundefined과 동일하지 않습니다 null 및 비 null 값을 구분합니다 서면,이 대신 typeof event.creativeId !== 'undefined'

2

귀하의 코드 같은 것을 할 것이다.

null 명시 적으로 테스트하려면 :

if (event.creativeId === null) { ... } 

undefined 명시 적으로 테스트하려면 :

if (event.creativeId === undefined) { ... } // preferred by Crockford 

또는

if (typeof event.creativeId === 'undefined') { ... } 
기존 로직을 감안할 때, 당신은 단순히 "falsiness"을 사용할 수 있습니다

분기를 제어하는 ​​방법 :

googletag.pubads().addEventListener('slotRenderEnded', function(event) { 
    if (event.slot.k.indexOf('_super_superior') > 0) { 
     if (event.creativeId) { // if event.creativeId exists/is numeric and non-zero/is a non-empty string/etc. 
      alert('DFP'); 
     } else { 
      alert('Adsense'); 
     } 
    } 
});