如何验证creativeId是否为null

时间:2014-09-12 16:58:43

标签: javascript adsense double-click

我正在使用这段代码来验证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?

谢谢!

3 个答案:

答案 0 :(得分:2)

您编写的代码将区分null和非null值,但nullundefined不同。

明确测试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)

JS Fiddle

typeof方式将是这样的typeof event.creativeId !== 'undefined'