Javascript 在设置cookie后运行脚本,而不重新加载页面

Javascript 在设置cookie后运行脚本,而不重新加载页面,javascript,cookies,Javascript,Cookies,我目前正在学习JavaScript,正在尝试cookies。我只是在尝试构建一个具有选择加入功能的cookie横幅,以便在cookie设置完成之前不应运行分析 因此,我有以下代码: if (getCookie ("cookieTracking") === "1") { console.log ("Run Script"); } 我的分析程序不应在第一个页面视图上运行。这是我想要的。页面正在加载,但未运行脚本,因为未设置cookie。一旦用户激活cookie横幅中的跟踪,脚本也将被加载 现在

我目前正在学习JavaScript,正在尝试cookies。我只是在尝试构建一个具有选择加入功能的cookie横幅,以便在cookie设置完成之前不应运行分析

因此,我有以下代码:

if (getCookie ("cookieTracking") === "1") {
  console.log ("Run Script");
}
我的分析程序不应在第一个页面视图上运行。这是我想要的。页面正在加载,但未运行脚本,因为未设置cookie。一旦用户激活cookie横幅中的跟踪,脚本也将被加载

现在解决我的问题:页面现在已加载,浏览器不会再次执行IF命令。因此,分析代码仍然未执行。只有当我重新加载页面时,IF命令才会为true并启动脚本

这是合乎逻辑的。但这会导致分析数据失真,因为第一次访问不计算在内。设置cookie后,如何重新执行IF命令


PS:今天我第一次注册了Stackoverflow,尽管我已经使用它很长时间了。我希望我能尽我的一份力,也能帮助你

我相信你可以给你一个承诺,然后做如下事情:

    var cookie = new Promise((res, rej) => {
      // Possibly a function call below
      document.cookie = "test=1"; 
      // just simplified check
      document.cookie.search(/test=1/) ? res() : rej()  
    })
    // call promise to check if it's fullfilled or rejected
    cookie.then(() => console.log('set')).catch((err) => console.log('failed'))


上面所做的是创建一个新的承诺来设置cookie。之后,您搜索Cookie,如果设置为或等于1,您将解析承诺,否则您将拒绝承诺


然后调用cookie,然后使用
catch检查cookie是否存在。

能否在运行时检查cookie以确定值?按照编写方式,只有当cooky值是字符串
“1”
,而没有其他值时,才会执行
if
块的内容。可能值得研究cookie值的实际值。将事件附加到用户横幅激活操作以手动触发if station中的代码。这确实有效,但根本不是最佳做法:使用
setInterval
检查cookie是否已设置,以及何时执行所需内容,并停止
setInterval
检查回路,就这样。谢谢我还不太了解JavaScript。随着比赛的进行和间隔,我明白了!