11

如何在 Google 优化广告系列中的窗口加载或文档准备就绪时运行 javascript?似乎它允许我一直选择 DOM 元素直到 Body,但我需要在准备好的文档上运行 js。

4

2 回答 2

16

这就是我的做法:

  1. 在可视化编辑器中编辑您的实验变体。
  2. 单击选择元素图标(左上角的矩形)
  3. 元素选择器字段中,输入body
  4. 单击添加更改按钮并选择 Javascript。这将弹出一个对话框,允许您输入将为主体调用的 JS 函数。
  5. 输入您要在其中运行的代码,并确保选择了结束标记之后选项。

由于 Google Optimize 的性质,我希望在加载 DOM 元素之前它不会开始搞乱它们。并且因为您在 body 标记上选择了After closing tag选项,这应该确保所有元素都已加载到 DOM 中。

但是,如果您想 100% 确定,您可以编写这样的函数。

function runOnLoad() {
    console.log('this will only run when window is loaded');
}
if(document.readyState === "complete") {
    runOnLoad();
} else {
    window.addEventListener("onload", runOnLoad, false);
}

该代码片段改编自How to check if DOM is ready without a framework?

于 2017-06-14T05:32:32.063 回答
2

如果上面的代码不起作用。

尝试使用:

document.onreadystatechange = function() {
    if(document .readyState === "complete") {
      console.log('this will only run when window is loaded');
    }
}

参考:https ://developer.mozilla.org/en-US/docs/Web/API/Document/readyState

于 2018-10-19T07:37:13.453 回答