【问题标题】:How to wait for cookie is set in pure JS?纯JS中如何等待cookie设置?
【发布时间】:2016-07-01 23:34:45
【问题描述】:

我的页面上有两个脚本: 脚本 1 设置一个 cookie,称为“myCookie”(同步) 脚本 2 获取 myCookie 值(异步)

在页面上,脚本 2 被放置在脚本 1 之前(脚本 1 是跟踪脚本,它被严格放置在之前)。

目前脚本 2 没有看到脚本 1 设置的 cookie。我怎样才能在纯 JS 上获取这些 cookie?

【问题讨论】:

  • 有一个callback函数怎么样?
  • 你的意思是 script1 中的回调?这是一个跟踪代码,所以我很难更改它的来源
  • 您可以编写 setInterval 函数,您可以在其中轮询 myCookie 值并在脚本 2 中的 myCookie 不为空时从中取出
  • @ВладимирЗотов — 那你将如何实现所需的输出?

标签: javascript cookies


【解决方案1】:

我已经用 setInterval 解决了这个问题。得到这样的东西:

var i=0;
var u_id=0;
var int=setInterval( function() { 
    var re = /_pk_ses([^=]*)/;
    if(re.exec(document.cookie)!=null || i==5){
        if(re.exec(document.cookie)!=null){
            var m=re.exec(document.cookie);
            var keyValue = document.cookie.match('(^|;) ?' + '_pk_id'+m[1] + '=([^;]*)(;|$)');
            u_id=keyValue[2].split('.')[0];
        }
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.async = true;
        script.src = "http://myurl.com/script.js?u_id="+u_id;
        document.getElementsByTagName('head')[0].appendChild(script);
        clearInterval(int);
    }
    i++;
} , 1000)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多