0

我有一个 .swf,每次访问都会在主页上弹出一次,持续几秒钟然后消失。为此我使用

 <script type="text/javascript">


        function popUp(url) { a bunch of java add flash stuff}

function testCookie() {
    if (document.cookie.indexOf("popupOnceValue=false") > -1) {
        document.cookie = "popupOnceValue=true;";
        return true;
    } else {
        return false;
    }
}
function popupOnce() {
    if (document.cookie.indexOf("popupOnceValue") > -1) {
        if (testCookie()) {
            popUp("");
        } 
    } else {
        document.cookie = "popupOnceValue=false;";
        if (testCookie()) {
            popUp("wefinance2.swf");
        }
    }
}

function init() {
    popupOnce();
}

window.onload = init;       



                    </script>   

这很棒。但是我确实已经尝试了每种变量组合来制作它,以便我可以在另一个页面上执行完全相同类型的弹出窗口。但是因为已经识别了 cookie,它不会弹出(即使它是不同的.swf)所以基本上我问我应该改变什么才能两次使用相同的弹出代码(popUP,testCookie,popupOnce)?啊!

把自己逼疯了!!

4

1 回答 1

0

您需要使 cookie 名称对页面 URL 保持唯一。您可以通过硬编码每个页面的 cookie 名称或自动生成 cookie 名称来做到这一点。后者如下图所示。

// Generate a cookie name based on the current URL.
function getCookieName() {
    return 'popup_' + encodeURIComponent(window.location.href);
}

function testCookie() {
    // Find the cookie name for the current page.
    var cookieName = getCookieName();
    if (document.cookie.indexOf(cookieName) > -1) {
        document.cookie = cookieName + "=true;";
        return true;
    } else {
        return false;
    }
}

function popupOnce() {
    // Find the cookie name for the current page.
    var cookieName = getCookieName();
    if (document.cookie.indexOf(cookieName) > -1) {
        if (testCookie()) {
            popUp("");
        } 
    } else {
        document.cookie = cookieName + "=false;";
        if (testCookie()) {
            popUp("wefinance2.swf");
        }
    }
}
于 2013-05-22T16:21:47.880 回答