我正在使用这段代码来验证creativeId
是否为空,但它突然停止工作。
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
是否为空,这样我就可以检测哪些广告是DFP,哪些是AdX?
谢谢!
答案 0 :(得分: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');
}
}
});
答案 1 :(得分:1)
您可以尝试这样:
if(event.creativeId!=null || event.creativeId!= undefined)
答案 2 :(得分:1)
尝试这一点,检查字符串'undefined'
不起作用,因为undefined
不是字符串,字符串'undefined'
在针对typeof
结果进行检查时。
if (event.creativeId!=null || event.creativeId != undefined)
typeof
方式将是这样的typeof event.creativeId !== 'undefined'