将Cookie添加到Fancy Box Popup

时间:2013-09-16 17:20:35

标签: jquery cookies popup fancybox

我有这个POPUP我可以用来不断弹出 - 我想添加一个7天的cookie吗?这有可能与我有什么关系吗?

<script type="text/javascript">
jQuery(document).ready(function() {
    $.fancybox(
        '<h2>' + {{ settings.popup_title | json }} + '</h2><p>' + {{ settings.popup_content | json }} + '</p>',
        {
             'autoDimensions'   : false,
            'width'                 : 450,
            'height'                : 'auto',
            'transitionIn'      : 'none',
            'transitionOut'     : 'none'
        }
    );
});
</script>

2 个答案:

答案 0 :(得分:2)

基于this answer,您可以根据自己的喜好调整代码:

function openFancybox() {
    setTimeout(function () {
        $.fancybox(
            '<h2>' + {
            {
                settings.popup_title | json
            }
        } + '</h2 > < p > ' + {
            {
                settings.popup_content | json
            }
        } + ' < /p>', {
            'autoDimensions': false,
            'width': 450,
            'height': 'auto',
            'transitionIn': 'none',
            'transitionOut': 'none'
        });
    }, 5000);
}
$(document).ready(function () {
    var visited = $.cookie('visited');
    if (visited == 'yes') {
        return false;
    } else {
        openFancybox();
    }
    $.cookie('visited', 'yes', {
        expires: 7
    });
});

这将在首次访问后5秒钟(或您喜欢的时间)触发fancybox,并且在接下来的7天内,假设访问者尚未清除浏览器的缓存/ cookie。

确保您已正确加载jQuery cookie plugin以及jQuery + fancybox js和css文件。

答案 1 :(得分:0)

fn fetch_access_token(base_url: &str) -> Result<String, ()> {
    let _url = format!("{}/v3/auth/token", base_url);
    // ...
    let token = String::from("test token");
    Ok(token)
}

fn get_env_url() -> String {
    String::from("http://www.test.com")
}

pub struct App {
    // private fields!
    base_url: String,
    access_token: Option<String>,
}

impl App {
    pub fn new() -> App {
        App {
            base_url: get_env_url(),
            access_token: None,
        }
    }

    /// set new base url; clears cached access token
    pub fn set_base_url(&mut self, base_url: String) {
        self.base_url = base_url;
        self.access_token = None;
    }

    pub fn get_base_url(&self) -> &str {
        &self.base_url
    }

    /// retrieve (possibly cached) access token. tries again if previous attempt failed.
    pub fn retrieve_access_token(&mut self) -> Result<&str, ()> {
        if self.access_token.is_none() {
            self.access_token = Some(fetch_access_token(&self.base_url)?);
        }
        Ok(self.access_token.as_ref().unwrap())
    }
}

fn main() {
    let mut app = App::new();
    println!("{}", app.retrieve_access_token().unwrap());
}