我有一个函数,在页面加载1秒后启动,在本地开发阶段它可以工作,但当我构建应用程序并将其放在服务器上时,超时不再工作(在chrome上,它只有在接受cookie的横幅并重新加载页面后才能工作(,而如果我进入隐身模式,它就不工作。
这是超时代码:
window.setTimeout(() => {
this.brake();
},1000);
这是一个vue.js应用程序。
我试图通过插入以下代码来修改函数:
document.addEventListener('DOMContentLoaded', function() {
window.setTimeout(() => {
this.brake();
},1000);
}, false);
但它仍然不起作用。
测试站点的链接是:https://new.carbobrake.com/
页面加载完成后,磁盘应自行停止,但这种情况不会发生。
----编辑----
这是我的代码:
<div id="animation-container">
<img id="fixed-canvas-container" :src="this.homeImages[0]" alt="" />
<img id="scroll-canvas-container" :src="this.animationImages[0]" alt="" />
<div id="step0">
// other code
</div>
</div>
Javascript:
methods: {
brake() {
this.canvasContainer = document.getElementById("fixed-canvas-container");
this.canvasContainer.src = this.homeImages[1];
setTimeout(() => {
document.body.style.overflowY = "visible";
this.setImageMargin();
document.getElementById("scroll-canvas-container").style.display =
"block";
var step0 = document.getElementById("step0");
TweenMax.fromTo(
step0,
0.5,
{
display: "none",
opacity: 0,
},
{
display: "block",
opacity: 1,
ease: Power3.easeIn,
}
);
}, 1100);
// TODO check
setTimeout(() => {
this.canvasContainer.style.display = "none";
},2500);
}
},
mounted() {
window.setTimeout(() => {
this.brake();
}, 1000);
}
我这样解决了它:
window.addEventListener('load', this.brake);
现在,它在页面加载结束时可以正常工作。