2014-09-12 3 views
1

Я использовал этот кусок кода, чтобы проверить, является ли creativeId нулевым, но он внезапно прекратил работу.Как проверить, имеет ли 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

Почему нижний предел? –

+0

Возможно, потому что перед редактированием это было неправильно. – GillesC

+0

@gillesc: - Да, это была опечатка, но она была исправлена ​​в тот самый момент, когда я получил downvote :( –

1

Попробуйте это, проверка против строки 'undefined' не работает, как undefined не строка, строка 'undefined' когда сверяются typeof результата.

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

JS Fiddle

typeof способом было бы что-то вроде этого вместо typeof event.creativeId !== 'undefined'

2

Ваш код, как написано, будет различать null и не- null значений, однако null не то же самое, как undefined.

Чтобы проверить явно для 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'); 
     } 
    } 
}); 
Смежные вопросы