Хорошо это или нет по отношению к гостям, решать не мне, но ниже опишу, как для Blogger сделать тоже самое своими руками.
Демо можете посмотреть здесь.
А вот скриншот того, что вы должны увидеть, пройдя по ссылке ↓
Установка.
Для тренировки рекомендуется сначала ставить на тестовый блог.
Первое, что нужно сделать - это слазить в админку Feedburner и найти такой код (для установки формы подписки через email):
Он понадобиться чуть позже. Можно пока скопировать в блокнот и русифицировать в нём кнопки.
Также из него нужно выкинуть строчку style="border:1px solid #ccc;padding:3px;text-align:center;".
Что приведёт код подписки к подобному виду:
<form action='http://feedburner.google.com/fb/a/mailverify' method='post' onsubmit='window.open('http://feedburner.google.com/fb/a/mailverify?uri=omg-linux/blogger', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true' style='border:1px solid #ccc;padding:3px;text-align:center;' target='popupwindow'><p>Enter your email address:</p><p><input name='email' style='width:140px' type='text'/></p><input name='uri' type='hidden' value='omg-linux/blogger'/><input name='loc' type='hidden' value='ru_RU'/><input type='submit' value='Subscribe'/><p>Delivered by <a href='http://feedburner.google.com' target='_blank'>FeedBurner</a></p></form>
Затем идём в редактор шаблона, обязательно сохраняем его копию к себе на жёстки диск, находим в шаблоне тег </body> и вставляем до него следующую конструкцию:
<div id='popupContact'> <a id='popupContactClose'>x</a> <h3> Подпишись и получай последние новости блога прямо на Email</h3> <p id='contactArea'> КОД_ИЗ_FEEDBURNER </p> </div> <div id='backgroundPopup'/>В которую нужно предварительно скопировать предыдущий код из своей админки Feedburner.
Чтобы окно подписки всплывало прямо на фоне страницы, а не на затёмнённом участке, удалите <div id='backgroundPopup'/>. И конечно измените текст приветствия на более подходящий.
Теперь находим в шаблоне тег </head> и вставляем перед ним ссылки на два скрипта:
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js' type='text/javascript'/> <script src='http://yandex.st/jquery/cookie/1.0/jquery.cookie.js' type='text/javascript'/>Если библиотека jQuery уже подключена к блогу, то первая ссылка не понадобится.
Сразу после этих ссылок вставлем этот скрипт:
<script type='text/javascript'> var popupStatus = 0; //loading popup with jQuery magic! function loadPopup(){ centerPopup(); //loads popup only if it is disabled if(popupStatus==0){ $("#backgroundPopup").css({ "opacity": "0.7" }); $("#backgroundPopup").fadeIn("slow"); $("#popupContact").fadeIn("slow"); popupStatus = 1; } } //disabling popup with jQuery magic! function disablePopup(){ //disables popup only if it is enabled if(popupStatus==1){ $("#backgroundPopup").fadeOut("slow"); $("#popupContact").fadeOut("slow"); popupStatus = 0; } } //centering popup function centerPopup(){ //request data for centering var windowWidth = document.documentElement.clientWidth; var windowHeight = document.documentElement.clientHeight; var windowscrolltop = document.documentElement.scrollTop; var windowscrollleft = document.documentElement.scrollLeft; var popupHeight = $("#popupContact").height(); var popupWidth = $("#popupContact").width(); var toppos = windowHeight/2-popupHeight/2+windowscrolltop; var leftpos = windowWidth/2-popupWidth/2+windowscrollleft; //centering $("#popupContact").css({ "position": "absolute", "top": toppos, "left": leftpos }); //only need force for IE6 $("#backgroundPopup").css({ "height": windowHeight }); } //CONTROLLING EVENTS IN jQuery $(document).ready(function(){ if ($.cookie("anewsletter") != 1) { //load popup setTimeout("loadPopup()",5000); } //CLOSING POPUP //Click the x event! $("#popupContactClose").click(function(){ disablePopup(); $.cookie("anewsletter", "1", { expires: 7 }); }); //Click out event! $("#backgroundPopup").click(function(){ disablePopup(); $.cookie("anewsletter", "1", { expires: 7 }); }); //Press Escape event! $(document).keypress(function(e){ if(e.keyCode==27 && popupStatus==1){ disablePopup(); $.cookie("anewsletter", "1", { expires: 7 }); } }); }); </script><script type='text/javascript'> var popupStatus = 0; //loading popup with jQuery magic! function loadPopup(){ centerPopup(); //loads popup only if it is disabled if(popupStatus==0){ $("#backgroundPopup").css({ "opacity": "0.7" }); $("#backgroundPopup").fadeIn("slow"); $("#popupContact").fadeIn("slow"); popupStatus = 1; } } //disabling popup with jQuery magic! function disablePopup(){ //disables popup only if it is enabled if(popupStatus==1){ $("#backgroundPopup").fadeOut("slow"); $("#popupContact").fadeOut("slow"); popupStatus = 0; } } //centering popup function centerPopup(){ //request data for centering var windowWidth = document.documentElement.clientWidth; var windowHeight = document.documentElement.clientHeight; var windowscrolltop = document.documentElement.scrollTop; var windowscrollleft = document.documentElement.scrollLeft; var popupHeight = $("#popupContact").height(); var popupWidth = $("#popupContact").width(); var toppos = windowHeight/2-popupHeight/2+windowscrolltop; var leftpos = windowWidth/2-popupWidth/2+windowscrollleft; //centering $("#popupContact").css({ "position": "absolute", "top": toppos, "left": leftpos }); //only need force for IE6 $("#backgroundPopup").css({ "height": windowHeight }); } //CONTROLLING EVENTS IN jQuery $(document).ready(function(){ if ($.cookie("anewsletter") != 1) { //load popup setTimeout("loadPopup()",5000); } //CLOSING POPUP //Click the x event! $("#popupContactClose").click(function(){ disablePopup(); $.cookie("anewsletter", "1", { expires: 7 }); }); //Click out event! $("#backgroundPopup").click(function(){ disablePopup(); $.cookie("anewsletter", "1", { expires: 7 }); }); //Press Escape event! $(document).keypress(function(e){ if(e.keyCode==27 && popupStatus==1){ disablePopup(); $.cookie("anewsletter", "1", { expires: 7 }); } }); }); </script>
Переходим к css.
Необходимо найти в шаблоне тег ]]></b:template-skin> и скопировать до него все стили:
#popupContactClose{ cursor: pointer; text-decoration:none; } #backgroundPopup{ display:none; position:fixed; _position:absolute; /* hack for internet explorer 6*/ height:100%; width:100%; top:0; left:0; background:#000000; border:1px solid #cecece; z-index:1; } #popupContact{ display:none; position:fixed; _position:absolute; /* hack for internet explorer 6*/ height:384px; width:408px; background:#FFFFFF; border:1px solid #ebedef; border-radius: 10px; -moz-border-radius:10px 10px 10px 10px; box-shadow:2px 2px 3px #ebedef; -moz-box-shadow:2px 2px 3px #ebedef -webkit-box-shadow: #999 2px 2px 3px; z-index:2; padding:12px; font-size:13px; } #popupContact h3{ text-align:left; color:#6FA5FD; font-size:22px; font-weight:700; border-bottom:1px dotted #D3D3D3; padding-bottom:2px; margin-bottom:20px; } #popupContactClose{ font-size:14px; line-height:14px; right:6px; top:4px; position:absolute; color:#6fa5fd; font-weight:700; display:block; }Все настройки внешего вида всплывающей формы ковырять здесь.
Пробелами выделены закругление окна (для разных бразеров) и тень.
Не забывайте, что форма для подписки на email всплывает только один раз (что является огромным плюсом этого скрипта) и не будет раздражать посетителей блога.
При настройке проверяйте работоспособность на другом браузере и каждый раз сбрасывайте кеш (личные настройки).
В браузере Opera это делается так:
Источник.
Блин, вроде полезная штука, повышает шансы подписки на тебя. А с другой стороны, меня например такая навязчивость слегка раздражает. =\
ОтветитьУдалитьМеня тоже раздражает, когда на каждом шагу в блоге предлагают подписаться.
ОтветитьУдалитьБуду вешать рекламу вместо формы подписки.
ОтветитьУдалитьВот блин, одну из моих идей реализовал)) Хотел тоже про это написать в будущем. И поменяй наконец то форму коментариев. Хоть без всплывания окошка.
ОтветитьУдалитьТак напиши, есть ещё свободные варианты таких окон, даже готовые от разных буржуйских сервисов.
ОтветитьУдалитьС формой комментариев прям засада - никак не получается втиснуть поле ввода после статьи. По каким-то своим соображениям оно пляшет на странице. Найду время, проинспектирую какой-нибудь шаблон и по аналогии найду ошибку. Пока скилл не позволяет делать вручную совершенные шаблоны :-). Нужно хорошие описание базовой части шаблонов Blogger.
подскажи где регулировать задержку перед появлением окна?
ОтветитьУдалитьДумаю, что здесь:
ОтветитьУдалить//load popup
setTimeout("loadPopup()",5000);
Установил форму подписки Feedburner в конце каждой статьи, но она почему-то коряво отображается в Opera и IE 9.0, нет цветного фона, только белые буквы. В Firefox отображается нормально, но цвет почему-то другой. В Google Chrome все нормально, цвет тот, который установлен. Кто-нить может подсказать, как это исправить? (Сайт см. нажав на мое имя)
ОтветитьУдалитьСпасибо за стать! А не подскажете ли, как сделать аналогичное всплывающее окно "Получи бесплатно книгу на свой е-мейл"?
ОтветитьУдалить
УдалитьВСТАВЛЯЕШЬ ЛЮБОЙ КОД
делаешь в сообщении ( Блоггер) код как надо и копируешь код
Скажите почему скрипт не работает в блоггер,если припаркован домен?
ОтветитьУдалитьВчера ещё работал код Сейчас пробую нет! Вот снял видео скажите в чём проблема? Есть скрипты запоминают пользователя,то-есть окно открывается
ОтветитьУдалитьодин раз(например за сеесию) пробую через прокси,с другого браузера тишина Вот снял видео В чём ошибка? http://youtu.be/EwkqipSt_gM
вот каким-то чудом окно заработало с новым шаблонам Строки Там нет Вот видео в чём ошибка?
ОтветитьУдалитьвот видео http://youtu.be/Y6cT0DaGjhk
Я так понял оно открывается один раз!
css вставил сюда ]]>
Всё решил проблему !Проблема была в скрипте показа новостей в блоке
ОтветитьУдалить☺ Как сделать что бы банер стоял на мести при прокрутки странице ?
ОтветитьУдалить☺ И по щелчку мышки окно не закрывалась?
хороший материал по пробовал на своем сайте работает нормально. только глючит в двух браузерах интерне эксп и firefox. подскажите как откорректировать.
ОтветитьУдалитьМожно ли настроить что бы форма подписки всплывала не сразу???
ОтветитьУдалить