DoubleClick Studio ClickTag编码中未捕获的ReferenceError

时间:2015-08-13 17:55:23

标签: javascript html5 google-swiffy clicktag

我有一个HTML5横幅广告文件,该文件是通过使用Swiffy扩展程序从Flash导出而创建的。我在这篇文章的最后一个答案中添加了clickTag:DoubleClick Studio ClickTag after using Swiffy

以下是根据上面引用的帖子添加的代码:

添加到文件负责人:

<script src="https://s0.2mdn.net/ads/studio/Enabler.js"> </script> 

使用<div id="swiffycontainer">包裹<div id="bg-exit">

<div id="bg-exit">
<div id="swiffycontainer"></div>
<div>

添加以下CSS样式以生成所需的透明按钮:

#bg-exit {
  background-color: rgba(255,255,255,0);
  cursor: pointer;
  height: 100%;
  left: 0px;
  position: absolute;
  top: 0px;
  width: 100%;
}

然后在文档底部添加以下脚本以添加所需的退出:

<script>
function bgExitHandler(e) {
  Enabler.exit('Background Exit');
}

document.getElementById('bg-exit').addEventListener('click', bgExitHandler, false);
</script>

当我通过Google Chrome控制台标签在本地检查广告时,我收到以下错误:“未捕获的ReferenceError:启动器未定义”在此部分退出脚本上:

function bgExitHandler(e) {
      Enabler.exit('Background Exit');
    }

有人可以帮忙吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

你在Enabler.js有机会完全初始化之前点击了吗?您应该实现一个侦听器,在触发任何内容之前等待Enabler初始化,可能在分配单击侦听器之前也是如此。

参考:https://support.google.com/richmedia/answer/2672553?hl=en&ref_topic=2672541&vid=1-635776161769558531-1301142788

// If true, start function. If false, listen for INIT.
window.onload = function() {
  if (Enabler.isInitialized()) {
      enablerInitHandler();
  } else {
      Enabler.addEventListener(studio.events.StudioEvent.INIT,
enablerInitHandler);
  }
}

function enablerInitHandler() {

    document.getElementById('bg-exit').addEventListener('click', bgExitHandler, false);

    // Start ad, initialize animation,
    // load in your image assets, call Enabler methods,
    // and/or include other Studio modules.
    // Also, you can start the Polite Load
}

function bgExitHandler(e) {
      Enabler.exit('Background Exit');
}

以上应该使得甚至无法触发启动器事件,直到它被正确初始化。您可以在此步骤中添加一些跟踪或浏览器警报,以便在某些部分完成时通知您,以帮助进行故障排除。