Jump to content
  • 0

Проблемы с выводом модельного окна


webkirpich
 Share

Question

Добрый день друзья,столкнулся с одной проблемой прошу у вас помощи.

Есть скрипт который срабатывает через 30 секунд после пересечения курсора полосы в 1px в шапки сайта. ( так сказать скрипт уведомления пользователя перед его уходом ), скрипт не в коем случаи не удерживает пользователя, я сам против этого. Он просто его уведомляет.

Проблема в следующем пытаюсь подцепить его на модельное окно Bootstrap но нечего не выходит, а если быть точным то переделать. 

Так же не могу понять сделать cookie в 10 дней. 

Вот собственно сам скрипт, буду очень благодарен за помощь. 

HTML (полоса в шапке в 1px)
 

<div style="display: none; padding: 1px;" id="exit_content">

JS (сам скрипт)

<script>
    (function () {
function setcookie(f,e,h){if(h){var g=new Date();g.setTime(g.getTime()+h)}if(f&&e){document.cookie=f+"="+encodeURIComponent(e)+";path=/"+(h?"; expires="+g.toUTCString():"")}else{return false}}
function getcookie(e){var d=new RegExp(e+"=([^;]){1,}");var f=d.exec(document.cookie);if(f){f=f[0].split("=")}else{return false}return f[1]?decodeURIComponent(f[1]):false}
var openSite = getcookie('openSite');
if(openSite) return false;
 
$(document).ready(function() {
   setTimeout(function() {$(document).mousemove(function(e) {
      if(getcookie('openSite')) return false;
      if(e.pageY <= 1)
      {
        $('#exit_content').modal({onOpen: modalOpen, onClose: simplemodal_close});
      }
   });},30000);

});
function modalOpen (dialog) {
    setcookie('openSite',1);
    dialog.overlay.fadeIn('fast', function () {
        dialog.container.fadeIn('fast', function () {
            dialog.data.hide().slideDown('fast');
        });
    });
}
function simplemodal_close (dialog) {
    dialog.data.fadeOut('fast', function () {
        dialog.container.hide('fast', function () {
            dialog.overlay.slideUp('fast', function () {
                $.modal.close();
            });
        });
    });
}

}());
</script>


На данный момент окно вызывается сейчас вот так
ID окна [ #ExitModal ]
 

<script>
$(document).ready(function () {
    //if cookie hasn't been set...
    if (document.cookie.indexOf("ModalShown=true")<0) {
        $("#ExitModal").modal("show");
        //Modal has been shown, now set a cookie so it never comes back
        $("#myModalClose").click(function () {
            $("#ExitModal").modal("hide");
        });
        document.cookie = "ModalShown=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
    }
});
</script>

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
13 часа назад, webkirpich сказал:

Проблема в следующем пытаюсь подцепить его на модельное окно Bootstrap но нечего не выходит, а если быть точным то переделать. 

А если ещё точнее, что и куда подцепить и причём тут бутстрап?

У вас первый скрипт проверяет отсутствуют ли куки и покинул ли курсор область документа. При соблюдении этих условий выводит #exit_content, используя jQueryUI.

Второй скрипт проверяет куки и при отсутствии выводит #ExitModal используя всё тот же jQueryUI, затем вешает обработчик на закрывашку и пишет куку.

PS  Я и сам говнокодер, но повесить обработчик на документ и запускать проверку положения курсора при движении мыши ... По моему это уже слишком ...

$(document).mouseover чем не угодил ...  

Link to comment
Share on other sites

  • 0
2 часа назад, andrey7287 сказал:

А если ещё точнее, что и куда подцепить и причём тут бутстрап?

У вас первый скрипт проверяет отсутствуют ли куки и покинул ли курсор область документа. При соблюдении этих условий выводит #exit_content, используя jQueryUI.

Второй скрипт проверяет куки и при отсутствии выводит #ExitModal используя всё тот же jQueryUI, затем вешает обработчик на закрывашку и пишет куку.

PS  Я и сам говнокодер, но повесить обработчик на документ и запускать проверку положения курсора при движении мыши ... По моему это уже слишком ...

$(document).mouseover чем не угодил ...  

Спасибо за ответ, мне нужно что бы в первом скрипте вызывался #ExitModal при соблюдении условий. Не могу понять как это сделать

Link to comment
Share on other sites

  • 0
$(document).ready(function() {
   setTimeout(function() {$(document).mousemove(function(e) {
      if(getcookie('openSite')) return false;
      if(e.pageY <= 1)
      {
        $("#ExitModal").modal("show");
        //Modal has been shown, now set a cookie so it never comes back
        $("#myModalClose").click(function () {
            $("#ExitModal").modal("hide");
        });
      }
   });},30000);

});

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy