2016-07-01 4 views
0

私はページ上の2つのスクリプトがあります。 スクリプト1組の「myCookie」(同期)と呼ばれるクッキーは、 スクリプト2は、スクリプト1(スクリプト1の前に置かれmyCookie値(非同期)ページのスクリプト2でクッキーを待つ方法は、純粋なJSに設定されていますか?

を取得します前に厳密に配置されているスクリプトを追跡しています)。

現在のところ、スクリプト2ではscript1で設定されたCookieが表示されません。純粋なJSのクッキーはどうすれば入手できますか?

+0

「コールバック」機能はどうですか? – Rayon

+0

あなたはscript1でコールバックを意味しますか?それはトラッキングコードなので、ソースを変更するのは難しいです –

+1

あなたはmyCookieの値をポーリングし、スクリプト2でmyCookieがnullでないときに出てくるsetInterval関数を書くことができます –

答えて

0

私は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) 
関連する問題