我正在使用 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/