【问题标题】:How to make this JS code executed only if statement is true? Set cookies仅当语句为真时,如何使此 JS 代码执行?设置 cookie
【发布时间】:2015-08-30 10:14:07
【问题描述】:

请帮我在 js 中找到一个合适的解决方案:

1) 我有一个来自引用者的 URL,其中包含两个变量

2) 我必须从 URL 中捕获 pdid 和 puid 变量,并设置名称为 POKUPON_DID 和 POKUPON_UID 的 cookie 及其值

3) 如果 URL 不包含此变量,cookie 设置为 undefined 的主要问题。我需要你对 corect 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);
}

非常感谢您!

【问题讨论】:

    标签: javascript cookies setcookie getvalue


    【解决方案1】:

    您需要检查未阅读的内容: 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);
    }
    

    【讨论】:

    • 我完全同意,但正如他所问:“我需要你的帮助来处理正确的 IF 语句。代码应该只执行一次,并且如果 URL 中的变量存在......”我已经帮助了他仅凭 if 语句,上帝只知道他为什么要在 if 中定义函数,无论如何它都不会创建范围...
    • 但无论如何都要为他重写它:D
    • 感谢您的回复,但每次我转到另一个没有 URL 变量的页面时 - cookie 再次变为 UNDEFINED :(
    • 如果你 console.log($POKUPON_UID);就在定义下面?
    • 是的,我不是程序员,所以您的帮助非常宝贵:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    相关资源
    最近更新 更多