Jump to content
  • 0

поставили скрипт на сайт а пользоваться не научили


Гука
 Share

Question

Ищу помощи у знающих.

Мне на сайт поставили модальное всплывающее окно, которое появляется при попытке выйти из него.

Работает исправно, но есть 2 вопроса:

-скрипт настроен на срабатывание 1 раз в сутки, в каком месте можно поменять эту настройку, например поставить через 1 час, или на постоянное?

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

Буду благодарен мудрому совету.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Вот он.


(function ($) {

function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
};

function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
};



function hideFlash() {
var embeds = document.getElementsByTagName('embed');
for (i = 0; i < embeds.length; i++) {
embeds[i].style.visibility = 'hidden';
}
var objects = document.getElementsByTagName('object');
for (i = 0; i < objects.length; i++) {
objects[i].style.visibility = 'hidden';
}

var iframes = document.getElementsByTagName('iframe');
for (i = 0; i < iframes.length; i++) {
iframes[i].style.visibility = 'hidden';
}
};

function showFlash() {
var embeds = document.getElementsByTagName('embed');
for (i = 0; i < embeds.length; i++) {
embeds[i].style.visibility = 'visible';
}
var objects = document.getElementsByTagName('object');
for (i = 0; i < objects.length; i++) {
objects[i].style.visibility = 'visible';
}

var iframes = document.getElementsByTagName('iframe');
for (i = 0; i < iframes.length; i++) {
iframes[i].style.visibility = 'visible';
}
};

/**
* When the open event is called, this function will be used to 'open'
* the overlay, container and data portions of the modal dialog.
*
* onOpen callbacks need to handle 'opening' the overlay, container
* and data.
*/
function modalOpen(dialog) {
$.fn.exitpopup.modelDlgShown++;
hideFlash();
dialog.overlay.fadeIn('fast', function () {
dialog.container.fadeIn('fast', function () {
dialog.data.hide().slideDown('fast');
});
});
};
/**
* When the close event is called, this function will be used to 'close'
* the overlay, container and data portions of the modal dialog.
*
* The SimpleModal close function will still perform some actions that
* don't need to be handled here.
*
* onClose callbacks need to handle 'closing' the overlay, container
* and data.
*/
function simplemodal_close(dialog) {
dialog.data.fadeOut('fast', function () {
dialog.container.hide('fast', function () {
dialog.overlay.slideUp('fast', function () {
$.modal.close();
showFlash();
if($.fn.exitpopup.options.cookieOnClose){ createCookie($.fn.exitpopup.options.cookieName, "1", "5"); }
//$.fn.exitpopup.modelDlgShown--;
});
});
});
};

jQuery.checkSubmitted = function () {
return readCookie($.fn.exitpopup.options.cookieName) == "1";
};

jQuery.trackSubmit = function () {
createCookie($.fn.exitpopup.options.cookieName, "1", "100"); /* name, value, days */
};


$.fn.exitpopup = function (options) {
if (this.length > 0) {
var opts = $.extend({}, $.fn.exitpopup.defaults, options);
$.fn.exitpopup.options = opts;
$.fn.exitpopup.modelDlgShown = 0;
opts.myTime = new Date();
var item = $(this[0]);


$(document).mousemove(function (e) {
var x = 0, y = 0;

if (!e) e = window.event;

if (e.pageX || e.pageY)
{
x = e.pageX;
y = e.pageY;
}
else if (e.clientX || e.clientY)
{
x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}

if (/*$.fn.exitpopup.modelDlgShown < 1 &&*/ (y - $(document).scrollTop() <= 5) && (!opts.checkCookie || !$.checkSubmitted())) {
// Launch MODAL BOX
if(opts.showOnBounceOnly){
var time = Math.floor((new Date()-opts.myTime)/100)/10;
if(time > opts.bounceDelay){ return; }
}

item.modal({ onOpen: modalOpen, onClose: simplemodal_close });
}

});


if (opts.showOnDelay) {
setTimeout(function () {
if (!$.checkSubmitted() && $.fn.exitpopup.modelDlgShown < 1) {
// we check the modelDlgShown variable value so that if the user triggered the dialog going out the window, it won't be shown second time on timer event
item.modal({ onOpen: modalOpen, onClose: simplemodal_close });
}}, opts.delay * 1000);
}
}
return this;

};

$.fn.exitpopup.defaults = {
checkCookie: true, // if true, the dialog won't be shown when the cookie is set, if false - the dialog is shown always when the user goes up the browser window
cookieName: "pp_msg",
cookieOnClose: true, // if true, the dialog is shown to the user once and a cookie is set to prevent second popup
showOnMouseout: true, // if true, the dialog is shown on mouse out
showOnBounceOnly: false, // if true, the dialog is only shown if the user leaves the page fast
showOnDelay: false, // if true, the dialog pops up after the specified amont of time
delay: 4, // in seconds
bounceDelay: 4 // in seconds
};

})(jQuery);

А вот это вставлено на странице.


<!--Cкрипты для модального окна начало-->
<script type="text/javascript" src="popup/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="popup/js/jquery.simplemodal.1.4.2.min.js"></script>
<script type="text/javascript" src="popup/js/jquery.exitpopup.js"></script>
<link rel="stylesheet" type="text/css" href="popup/style/exitpopup.css"/>
<script type="text/javascript">
$(function () {
$('#exit_content').exitpopup({ showOnDelay: false});
// $('#exit_content').exitpopup(); // - with default options
// $('#exit_content').exitpopup({ checkCookie: false, showOnDelay: true, delay: 30 }); // - more options
});
</script>
<!--Cкрипты для модального окна конец-->

Edited by sigma77
Link to comment
Share on other sites

  • 0

Гука,

Обрамляйте код тегами [ code ] и [ /code ] без пробелов. На первый раз ваш текст я поправила сама. Но в будущем уважайте других.

А почему вы автору этот вопрос не зададите?

А так время, походу, задается здесь, глубоко копать сейчас времени нет

 if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}

Link to comment
Share on other sites

  • 0

я так понимаю что тут в скрипте устанавливается дата в куках

function createCookie(name, value, days) {
if (days) {
var date = new Date();
[b]date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));[/b]
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
};

а что бы отключить скрипт, надо закоментировать это

<script type="text/javascript">
$(function () {
$('#exit_content').exitpopup({ showOnDelay: false});
// $('#exit_content').exitpopup(); // - with default options
// $('#exit_content').exitpopup({ checkCookie: false, showOnDelay: true, delay: 30 }); // - more options
});
</script>

хотя может я и не прав)))

Edited by stasuss
Link to comment
Share on other sites

  • 0

А по-моему у Вас кука по дефолту на 100 дней стоит:

jQuery.trackSubmit = function () {
createCookie($.fn.exitpopup.options.cookieName, "1", "100"); /* name, value, days */
};

Всплывать всегда:

$(function () {
$('#exit_content').exitpopup({ showOnDelay: false, checkCookie: false});
// $('#exit_content').exitpopup(); // - with default options
// $('#exit_content').exitpopup({ checkCookie: false, showOnDelay: true, delay: 30 }); // - more options
});

Отключить совсем:

<script type="text/javascript">
$(function () {
//$('#exit_content').exitpopup({ showOnDelay: false});
// $('#exit_content').exitpopup(); // - with default options
// $('#exit_content').exitpopup({ checkCookie: false, showOnDelay: true, delay: 30 }); // - more options
});
</script>

P.S. Чёрт... Подсветка вложенных тэгов не работает - сами различия ищите

Edited by Nanto
Link to comment
Share on other sites

  • 0

Обрамляйте код тегами [ code ] и [ /code ] без пробелов. На первый раз ваш текст я поправила сама. Но в будущем уважайте других.

А почему вы автору этот вопрос не зададите?

Спасибо за подсказку, не знал об этой фишке.

А установщик этого скрипта, даже за изменение текста и картинок в окне просит по 300р. хотя это совсем просто, а периодически менять код, это вообще золотое дно для него.

Nanto Спасибо, буду эксперементировать, о результатах обязательно отпишу.

Куки действительно задействованы, я когда редактировал контент окна, в браузере поставил запрет на приём куки и чистил кэш, чтобы смотреть как окно меняется.

Link to comment
Share on other sites

  • 0

Действительно всё работает так как ты сказал. Совсем не сложно.

Спасибо большое (жаль нет полномочий на плюсик жать).

Получается, что в принципе тему можно закрывать.

Но для полной информации, может быть на досуге ещё разберём

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

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