1

我正在使用 Google Optimize 通过注入一行 Javascript 在页面上运行 A/B 实验:

$(document).ready(function(){console.log(1);});

当我运行实验并在新的隐身窗口中查看目标页面时,“1”成功登录到控制台。

但是如果我刷新页面,控制台不会记录任何内容。我可以在页面之间导航,但没有任何记录。

如果我关闭隐身会话并开始一个新会话,我只能让它再次工作。

好像Optimize 只是在会话用户第一次看到变体时才执行脚本?

每次在会话中查看页面时,如何让 JS 运行?

注意:我尝试将代码放在正文和头部,在开始标记之后和结束标记之后。

4

1 回答 1

3

多亏了这里的 Google 员工的一些帮助,我设法弄清楚 JQuery 是阻碍。在第一次隐身加载时,Optimize 尚未缓存并且加载时间比 JQuery 长,所以当它执行时,我的自定义 JS 可以运行正常。

但是在刷新时,缓存的优化器在 JQuery 之前加载,这意味着我的自定义 JS 失败了。

解决方案是去掉 JQuery 并使用普通的 Javascript 做我需要的事情。

对于我上面的简单示例,我可以简单地调用 console.log(1); 没有包装它。

在我的实际工作中,我试图在输入字段中设置占位符文本。用纯 Javascript 执行此操作效果很好:

document.getElementById('theElement').placeholder = '文本';

希望这可以帮助某人。

于 2018-11-14T16:47:12.080 回答