2015-03-05 2 views
0

Sir/Madam,Highslide Auto Popup за один раз

Я использовал Highslide скрипт для автоматического всплывающего окна на странице индекса. Чтобы пользователь открывал веб-сайт, всплывающее окно должно выглядеть видимым, имея собственное сообщение. Но я хочу, чтобы он отображался только один раз для пользователя, а если пользователь закрыл всплывающее окно, он не должен отображаться снова до тех пор, пока сеанс браузера не будет активен. Автоматический всплывающий код работает правильно, но я хочу, чтобы он был видимым только за один раз.

Я использовал код ниже: (ниже код должен быть между головкой тегом)

<!---For HighSlide Auto Popup---> 
 
      <script type="text/javascript" src="highslide/highslide-full.js"></script> 
 
      <link rel="stylesheet" type="text/css" href="highslide/highslide.css"> 
 
      <script type='text/javascript'>//<![CDATA[ 
 
       // automatically open a link to a HTML page 
 
       hs.graphicsDir = 'highslide/graphics/'; 
 
       hs.align = 'center'; 
 
       hs.outlineType = 'rounded-white'; 
 
       hs.dimmingOpacity = 0.75; 
 

 
       hs.addEventListener(window, "load", function() { 
 
       // click the element virtually: 
 
       document.getElementById("autoload").onclick(); 
 
       }); 
 

 
       hs.registerOverlay({ 
 
      html: '<div class="closebutton" onclick="return hs.close(this)" title="Close"></div>', 
 
      position: 'top right', 
 
      fade: 2 // fading the semi-transparent overlay looks bad in IE 
 
       }); 
 
       //]]> 
 
      </script>  
 
      <!---Ends Here--->

HTML код: (ниже код должен быть после тела открытая бирка)

<a id="autoload" class="highslide" href="popup.html" onclick="return hs.htmlExpand(this, {objectType: 'iframe', wrapperClassName: 'draggable-header'})" style="display:none;"></a>

Надеюсь, что вы должны сделать потребного как можно скорее ....

+0

Вы пытались использовать куки? http://www.w3schools.com/js/js_cookies.asp – RoadRash

+0

У меня не было знаний о javascript sir ... не могли бы вы направить меня за это ... – user2990735

ответ

1

Смотрите эту jsFiddle: http://jsfiddle.net/72uny6ba/

HTML код:

<a id="autoload" class="highslide" style="display: none;" href="https://fiddle.jshell.net/roadrash/7AHX9/show/light/" onclick="return hs.htmlExpand(this, {objectType: 'iframe', wrapperClassName: 'draggable-header'})">Autoloaded popup</a> 


JavaScript для файлов cookie и автозагрузка:

// cookie 
    function bakecookie(name, value) { 
     var argv = bakecookie.arguments; 
     var argc = bakecookie.arguments.length; 
     var daysgood = (argc > 2) ? argv[2] : null; 
     var path = (argc > 3) ? argv[3] : "/"; 
     var domain = (argc > 4) ? argv[4] : null; 
     var secure = (argc > 5) ? argv[5] : false; 
     var expires = new Date(); 
     expires.setDate (expires.getDate()+daysgood); 
     document.cookie = name + "=" + escape (value) +((daysgood == null) ? "" : ("; expires=" + expires.toGMTString())) +((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain)) +((secure == true) ? "; secure" : ""); 
    } 

    function eatcookie(name) { 
     var arg = name + "="; 
     var alen = arg.length; 
     var clen = document.cookie.length; 
     var i = 0; 
     while (i < clen) { 
      var j = i + alen; 
      if (document.cookie.substring(i, j) == arg) {return eatcookieval (j);} 
      i = document.cookie.indexOf(" ", i) + 1; 
      if (i == 0) {break;} 
     } 
     return null; 
    } 

    function eatcookieval(offset){ 
     var endstr=document.cookie.indexOf(";",offset); 
     if (endstr == -1) {endstr = document.cookie.length;} 
     return unescape(document.cookie.substring(offset,endstr)); 
    } 

// autoload popup 
hs.addEventListener(window, "load", function() { 
    // click the element virtually: 
    if (!eatcookie('YouveSeenOurNewSite')) { 
     document.getElementById("autoload").onclick(); 
    } 
}); 

// set the cookie 
hs.Expander.prototype.onAfterExpand = function (sender) { 
    bakecookie('YouveSeenOurNewSite', true, 365); 
}; 
+0

этот файл cookie будет избегать всплывающих окон на один день? – user2990735

+0

Вы можете настроить количество дней в этой части в конце кода: 'bakecookie ('YouveSeenOurNewSite', true, 365);' – RoadRash

Смежные вопросы