在Google Optimize中插入动态的onClick事件脚本

时间:2018-08-22 07:10:41

标签: javascript html dynamic-html dynamic-script-loading google-optimize

我需要通过Google Optimize实验添加一个html元素,一个按钮,并且它必须根据实验执行某些脚本。

我试图通过以下方式做到这一点:

<button id="my-button">Show</button>


var script = document.createElement('script');
var inlineScript;
script.appendChild(inlineScript); 
element.appendChild(script);

inlineScript变量的内容:

1.
    'document.createTextNode('document.addEventListener("click",function(e){ if(e.target && e.target.id== "my-button"){ console.log("test"); } }); );');'


2.
    'document.createTextNode('var myButtonElement = document.getElementById(
    "my-button");
    myButtonElement.addEventListener("click", function()
    { console.log("test");});')'

但是,这两种方法均无效。当我从后端对代码进行硬编码时,它可以正常工作,但是需要通过Optimize动态添加。还有另一种方法可以将动态html脚本添加到html中吗?

1 个答案:

答案 0 :(得分:0)

有一种方法可以仅使用Google Optimize工具来执行此操作,但是我无法这样做。

为了解决这个问题,我已经定义了一个函数和一个变量,该变量和变量在CMS工具的头部设置,然后在优化中,我只需执行以下操作:

  1. 带有myFunction的按钮
  2. 一个附加到元素上的脚本,用于为变量设置我需要的值:
var script = document.createElement('script');
var inlineScript = document.createTextNode("myValue= '123'");
element.appendChild(script);