0

我想知道是否有人可以提供帮助?

我设法创建了一个带有时间延迟的弹出窗口脚本。我需要它在第一次访问时打开,而不是在三个月内再次打开。

我完全迷失了,今天和昨天的大部分时间都在网上搜索。我是 Javascript 和 Cookie 的新手。

先感谢您。扫罗

这是弹出打开窗口的脚本。

<script type="text/javascript">
function start(theURL, winName,w,h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
var targetWin = window.open (theURL, winName, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
} 
setTimeout(start, 1*1000, 'pop_up.html', 'pop-up-title',200,100);
</script>
4

1 回答 1

1

只是我的方式,它非常粗糙,但是当页面加载时,我会查看是否存在 cookie,例如我的 cookie 称为 CookieDisplay。检查它:

 var mycookie= getCookie("CookieDisplay");
        if (mycookie== null ){

            start();
        }


function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

如果页面已加载并且 cookie 存在,则不要加载窗口。如果 cookie 不存在,则运行您的 start() 函数。在 start() 函数中的某处创建 cookieDisplay cookie,以便下一次往返,当页面加载时进行检查,找到 cookie 并且窗口未打开设置 cookie 示例在这里:

 function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" +                 exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}

如果您在欧盟,请注意新的 cookie 法。

于 2012-04-25T14:25:06.380 回答