0

以下のjsで適切な解決策を見つけるのを手伝ってください:

1) 2 つの変数を含むリファラーからの URL があります。

2) URL からpdidおよびpuid変数を取得し、POKUPON_DID および POKUPON_UID という名前の Cookie とそれらの値を設定する必要があります。

3) URL にこの変数が含まれていない場合、Cookie が未定義に設定されるという主な問題。正しい IF ステートメントについて教えてください。コードは一度だけ実行する必要があり、URL の変数が存在する場合...

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

var $POKUPON_DID = getUrlVars()["pdid"];
var $POKUPON_UID = getUrlVars()["puid"];
 
if($POKUPON_DID != emty){
    
function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;

}

setCookie("POKUPON_DID",$POKUPON_DID,30);
setCookie("POKUPON_UID",$POKUPON_UID,30);
}

よろしくお願いします!

4

1 に答える 1

0

これを読んで unfiend をチェックする必要があります: How to check for "undefined" in JavaScript?

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;

}

var $POKUPON_DID = getUrlVars()["pdid"];
var $POKUPON_UID = getUrlVars()["puid"];
 console.log($POKUPON_DID);
 console.log($POKUPON_UID);

if(typeof $POKUPON_DID != 'undefined'){
setCookie("POKUPON_DID",$POKUPON_DID,30);
setCookie("POKUPON_UID",$POKUPON_UID,30);
}
于 2015-08-30T10:16:56.973 に答える