// ==UserScript== // @name popup v2 // @namespace http://tampermonkey.net/ // @version 0.1 // @description //• Тот кто 2 раза нажал Х, видит попап в след. раз только тогда, когда минимум через 24 часа пытается покинуь сайт. //• Кто нажал “No, thanks…” хоть 1 раз тоже самое применяется: попап выскакиевает мин через 24ч при попытке покинуть сайт, а не при новой сессии как сейчас. //Через Х - на второй раз запускается логика, //Через Текст - на первый. // @author You // @match https://www.indicaskincare.com/* // @grant none // ==/UserScript== var getPopupCount = { get : function(str){ var counter = localStorage.getItem(str); if(!counter){ counter = 0; }else{ counter = parseInt(counter); } return counter; }, set_plus : function(str){ var last_state = getPopupCount.get(str); last_state++; localStorage.setItem(str,last_state); }, set_minus : function(str){ var last_state = getPopupCount.get(str); if(last_state>0){ last_state--; localStorage.setItem(str,last_state); } }, reset : function(str){ localStorage.setItem(str,0); localStorage.setItem('last_timeout_time',0) } } //popup var popupclose = localStorage.getItem('popup_close'); var popupclose_global = localStorage.getItem('popup_close'); if(popupclose=="1"){ localStorage.setItem('popup_close',1); } if(popupclose_global!="1"){ var check_popup_int_counter = 0; var check_popup_int = setInterval(function(){ var popupform_class = jQuery('.pop-up-wrapper'); check_popup_int_counter++; if(popupform_class&&popupform_class.length>0){ var popupform = popupform_class[0]; jQuery(popupform).css('visibility','hidden'); var close_button_clicked = localStorage.getItem('close_button_clicked'); var ghost_button_clicked = localStorage.getItem('ghost_button_clicked'); if(close_button_clicked=="1"||ghost_button_clicked=="1"){ var last_popup_state = jQuery(popupform).css('visibility'); jQuery(popupform).css('visibility','hidden'); setTimeout(function(){ jQuery(popupform).css('opacity',0); jQuery(popupform).css('visibility',last_popup_state); },800); }else{console.log('first') last_popup_state = jQuery(popupform).css('visibility'); jQuery(popupform).css('visibility','hidden'); setTimeout(function(){ jQuery(popupform).css('opacity',0); jQuery(popupform).css('visibility','visible'); },800); setTimeout(function(){ jQuery(popupform).animate({ opacity: 1 }); //jQuery(popupform).css('visibility','visible'); jQuery(popupform).css('display','flex'); jQuery(popupform).css('justify-content','center'); jQuery(popupform).css('align-content','center'); },1300); } kos_closepopup(); if(ghost_button_clicked=="1"){ var ghost_button_class = jQuery(popupform).find(".ghost-button-text"); if(ghost_button_class&&ghost_button_class.length>0){ var ghost_button = ghost_button_class[0]; setTimeout(function(){ var popupform_class = jQuery('.pop-up-wrapper'); if(popupform_class&&popupform_class.length>0){ var popupform = popupform_class[0]; var ghost_button_class = jQuery(popupform).find(".ghost-button-text"); if(ghost_button_class&&ghost_button_class.length>0){ var ghost_button = ghost_button_class[0]; getPopupCount.set_minus('popup_counter_x'); getPopupCount.set_minus('popup_counter_x'); jQuery(ghost_button).trigger('click'); } } },700); } } if(close_button_clicked=="1"){ var close_button_class = jQuery(popupform).find(".pop-up-close-corner"); if(close_button_class&&close_button_class.length>0){ var close_button = close_button_class[0]; setTimeout(function(){ var popupform_class = jQuery('.pop-up-wrapper'); if(popupform_class&&popupform_class.length>0){ var popupform = popupform_class[0]; var close_button_class = jQuery(popupform).find(".pop-up-close-corner"); if(close_button_class&&close_button_class.length>0){ var close_button = close_button_class[0]; getPopupCount.set_minus('popup_counter_x'); jQuery(close_button).trigger('click'); } } },700); } } // return ''; // }); clearInterval(check_popup_int); } if(check_popup_int_counter>100){ clearInterval(check_popup_int); } },50); } function kos_closepopup(){ localStorage.setItem('popup_reloaded',1); var getPopupCount = { get : function(str){ var counter = localStorage.getItem(str); if(!counter){ counter = 0; }else{ counter = parseInt(counter); } return counter; }, set_plus : function(str){ var last_state = getPopupCount.get(str); last_state++; localStorage.setItem(str,last_state); }, set_minus : function(str){ var last_state = getPopupCount.get(str); if(last_state>0){ last_state--; localStorage.setItem(str,last_state); } }, reset : function(str){ localStorage.setItem(str,0); localStorage.setItem('last_timeout_time',0) } } var popupform_class = jQuery('.pop-up-wrapper'); var popupclose = localStorage.getItem('popup_close'); if(popupform_class&&popupform_class.length>0&&popupclose!="1"){ var popupform = popupform_class[0]; //jQuery(popupform).css('visibility','visible'); var onsubmit_class = jQuery(popupform).find("input:submit"); if(onsubmit_class&&onsubmit_class.length>0){ var onsubmit = onsubmit_class[0]; jQuery(onsubmit).click(function(){ var click_int = setInterval(function(){ var popupclose = localStorage.getItem('popup_close'); if( popupclose!=1){ clearInterval(click_int); var int = setInterval(function(){ var popupform_class = jQuery('.pop-up-wrapper'); var popupform = popupform_class[0]; var succ_class = jQuery(popupform).find('.cc-success-message'); if(succ_class!=null&&succ_class.length>0){ localStorage.setItem('popup_close',1); localStorage.setItem('popup_close',1); setTimeout(function(){ jQuery(popupform).css('display','none'); //jQuery(popupform).hide(); },3000); setTimeout(function(){ jQuery(popupform).animate({ opacity: 0 }); },2000); clearInterval(int); } },200); } },200); }); } //button triggers //No thanks... var ghost_button_class = jQuery(popupform).find(".ghost-button-text"); if(ghost_button_class&&ghost_button_class.length>0){ var ghost_button = ghost_button_class[0]; jQuery(ghost_button).click(function(){console.log('nothanks clicked'); // localStorage.setItem('popup_close',1); // localStorage.setItem('mouseleave',1); //click X 2 numbers var close_button_class = jQuery(popupform).find(".pop-up-close-corner"); if(close_button_class&&close_button_class.length>0){ var close_button = close_button_class[0]; jQuery(close_button).trigger('click'); jQuery(close_button).trigger('click'); //setTimeout(function(){localStorage.setItem('mouseleave',1);},30000); } // localStorage.setItem('close_button_clicked',0); //localStorage.setItem('ghost_button_clicked',1); }); // jQuery(ghost_button).click(setTimeout(function(){},)); } //Close button var close_button_class = jQuery(popupform).find(".pop-up-close-corner"); if(close_button_class&&close_button_class.length>0){ var close_button = close_button_class[0]; jQuery(close_button).click(function(){console.log('close button clicked'); localStorage.setItem('close_button_clicked',1); localStorage.setItem('ghost_button_clicked',0); localStorage.setItem('mouseleave',0); getPopupCount.set_plus('popup_counter_x'); //click counter var counter = getPopupCount.get('popup_counter_x'); var reloaded = localStorage.getItem('popup_reloaded'); var last_timeout_time = parseInt(localStorage.getItem('last_timeout_time')); var diff=0; var timer = 600000;//10 mins var timer_mouseleave = 1; if(counter>=2){ //timer = 24*3600*1000; //24 hours timer = 15*60*1000; //test 15 mins timer_mouseleave = timer; } if(counter==2){ localStorage.setItem('mouseleave',1); //disable "interval popup" localStorage.setItem('interval_popup',1); setTimeout(function(){localStorage.setItem('mouseleave',0);},timer_mouseleave); } var now = Date.now(); if(reloaded=="1" && last_timeout_time && last_timeout_time!=NaN){ diff = now - last_timeout_time; timer = timer - diff; if(timer<0){timer = 100;} }else{ localStorage.setItem('last_timeout_time',now); } console.log(timer) var last_timeout = localStorage.getItem('last_popup_close_timeout'); if(last_timeout) { clearTimeout(last_timeout); } var int_popup = localStorage.getItem('interval_popup'); if(int_popup!="1"){ var now_popup_close_timeout = setTimeout(function(){ localStorage.setItem('popup_reloaded',0); var popupform_class = jQuery('.pop-up-wrapper'); var popupform = popupform_class[0]; var popupclose = localStorage.getItem('popup_close'); if(popupclose!=1){ //reset counter var counter = getPopupCount.get('popup_counter_x'); if(counter>=2){getPopupCount.reset('popup_counter_x');} jQuery(popupform).css('visibility','visible'); jQuery(popupform).animate({ opacity: 1 }); jQuery(popupform).css('display','flex'); jQuery(popupform).css('justify-content','center'); jQuery(popupform).css('align-content','center'); jQuery(popupform).show(); } },timer); } //mouseleave event // var last_mouseleave_interval = localStorage.getItem('mouseleave_interval'); setTimeout(function(){ jQuery(document).mouseleave(function(){var int = setTimeout(function(){ var mouseleave = localStorage.getItem('mouseleave'); if(mouseleave!="1"){ //reset counter var counter = getPopupCount.get('popup_counter_x'); if(counter>=2){getPopupCount.reset('popup_counter_x');} var popupform_class = jQuery('.pop-up-wrapper'); var popupform = popupform_class[0]; var popupclose = localStorage.getItem('popup_close'); if(popupclose!=1){ jQuery(popupform).css('visibility','visible'); jQuery(popupform).animate({ opacity: 1 }); jQuery(popupform).css('display','flex'); jQuery(popupform).css('justify-content','center'); jQuery(popupform).css('align-content','center'); jQuery(popupform).show(); localStorage.setItem('mouseleave',1); // clearInterval(last_mouseleave_interval); // localStorage.setItem('mouseleave_interval',int); }} },1);}); },timer_mouseleave); localStorage.setItem('last_popup_close_timeout',now_popup_close_timeout); //getPopupCount.set_plus('popup_counter_x'); }); } }else if(popupform_class&&popupform_class.length>0&&popupclose=="1"){console.log('success message returned'); popupform = popupform_class[0]; jQuery(popupform).css('visibility','hidden'); jQuery(popupform).css('opacity',0); jQuery(popupform).hide(); } }