0

我需要通过 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 中?

4

1 回答 1

0

有可能,有一种方法可以通过单独使用 Google Optimize 工具来做到这一点,但是我无法这样做。

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

  1. 带有 myFunction 的按钮
  2. 附加到元素的脚本以使用我需要的值设置变量:
var script = document.createElement('script');
var inlineScript = document.createTextNode("myValue= '123'");
element.appendChild(script);
于 2018-08-22T11:31:44.567 回答