Javascript Cookie未设置

时间:2017-01-04 15:58:20

标签: javascript google-chrome iis cookies

我有一个应用程序需要根据发送给它的查询字符串弹出URL。不幸的是,我们无法在应用程序本身中插入任何javascript,但我们可以插入一个加载运行javascript的页面的iFrame。应用程序中存在一个错误,它会在几秒钟内将内容加载到iFrame中两次,这会导致URL弹出两次。

为了解决这个问题,我决定设置一个过期的cookie。在弹出之前,我会检查cookie是否存在,如果存在,则阻止弹出。

不幸的是,我的cookie没有被设置。我已经阅读了一些关于Javascript cookie的线程试图解决这个问题。我发现的第一件事是Chrome不接受来自本地文件的cookie,因此我设置了一个IIS服务器来托管该页面。

但是,cookie仍未设置。我读了this page以确保我的代码是正确的,据我所知,它应该是正确的。

我的页面代码如下。任何帮助将不胜感激。

<html>
<head>
<script type="text/javascript">

var isPopped;

function myFunction() {
    alert("Hello! I am an alert box!");
}

function checkCookie() {
    var user=getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
       user = prompt("Please enter your name:","");
       if (user != "" && user != null) {
           setCookie("username", user, 30);
       }
    }
}

function pop() {
var queryString = location.search.substring(1); //Get Query String from URL of iFrame source. The substring(1) strips off the ? and only takes the first substring. This can be modified to take more and the resulting string can be edited with Regular Expressions if more flexibility is required.
var urlToPop = "https://www.google.com/#" + queryString //Set URL to pop. 

    var recentVisitTrue=getCookie("visitRecent");
    if (recentVisitTrue != "") {
        isPopped = 1;
    } else {
       window.open(urlToPop,"_blank");
       setCookie("visitRecent", "true");
    }
}

function setCookie(cName,cValue) {
var date = new Date();
date.setTime(d.getTime() + 8000000);
var expires = "; expires=" + date.toGMTString();
document.cookie = cName + "=" + cValue + expires + ";path=/";
}

function getCookie(cName) {
    var name = cName + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}



</script>
</head>
<body onload="pop();">
v0.32
</body>
</html>

谢谢!

0 个答案:

没有答案