Question

I have a website based on MVC4. My client want to show pop up banner with ad (some image). It should be shown just once when somebody come to any page and closed by clicking on button "close/x".

I wouldn't want to make it very annoying for visitors. How I can do that? tnx.

Was it helpful?

Solution

You can use something like this:

Example here: http://officialunlocks.com/guestCheckout.php

Fiddle here: http://jsfiddle.net/x2j8L/

(function($) {
$.cookie = function(key, value, options) {

    // key and at least value given, set cookie...
    if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
        options = $.extend({}, options);

        if (value === null || value === undefined) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }

        value = String(value);

        return (document.cookie = [
            encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
            options.path    ? '; path=' + options.path : '',
            options.domain  ? '; domain=' + options.domain : '',
            options.secure  ? '; secure' : ''
        ].join(''));
    }

    // key and possibly options given, get cookie...
    options = value || {};
    var decode = options.raw ? function(s) { return s; } : decodeURIComponent;

    var pairs = document.cookie.split('; ');
    for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
        if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
    }
    return null;
};
})(jQuery);



$(function(){
    if($.cookie("delDialogCookie") === null){
        window.open('your_url');
        delDialog();
    }
});

function delDialog(){
    $.cookie("delDialogCookie", null)   
}

This will show on each load and you can change the cookie expiry time for the same or path value to set different cookie for

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top