javascript - 为什么 Google 优化 javascript 不在页面刷新时执行?

标签 javascript google-optimize

我正在使用 Google 优化工具通过注入(inject)一行 Javascript 在页面上运行 A/B 实验:

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

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

但是如果我刷新页面,控制台上不会记录任何内容。我可以导航到该页面和从该页面导航,但从未记录任何内容。

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

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

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

注意:我已经尝试将代码放在正文和 header 中,包括打开标签和关闭标签之后。

最佳答案

感谢 Google 员工的一些帮助 here ,我设法解决了 JQuery 的问题。在第一次隐身加载时,Optimize 尚未缓存并且加载时间比 JQuery 长,因此在它执行时我的自定义 JS 可以正常运行。

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

解决方案是去掉 JQuery,用普通的 Javascript 做我需要的。

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

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

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

希望这对某人有帮助。

关于javascript - 为什么 Google 优化 javascript 不在页面刷新时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53116649/

相关文章:

javascript - 选择一个选项将选择另一个选项

javascript - 为iframe计算网页的动态高度

javascript - 在没有可视化编辑器的情况下使用 Google Optimize?

google-analytics - 此页面上未正确安装ID为GTM-…的容器的Google Optimize代码段

google-optimize - 加载 Google Optimize On DataLayer 更改 - 评估自定义事件

html - 在 Google Optimize 中居中 Div 类

javascript - 如何使用 jQuery 禁用文本区域 + 提交按钮?

javascript - 返回数组中位于给定键的最小元素

javascript - 复选框仅适用于第一页 - 数据表、 rails

javascript - 是否可以使用 Google Optimize 读取 Javascript 中的 ExperimentId 和 VariationId?