JS Как сделать ложное всплывающее окно
|
|
|
2014-04-26Дата: Суббота, 26.04.2014, 20:42 | Сообщение # 1 |
Сержант
Группа: Проверенные
Статус: Offline
|
Всем доброго времени, попробую объяснить что я хочу.
Нашел хороший JS скрипт, который дает возможность жаловаться на видео материалы если они не работают. На своем сайте я использую подобный JS скрипт, но переделанный мной без знаний JS, только сильно не смейтесь))), сейчас опишу его работу и покажу скрины.
На каждой странице, где есть видео стоит кнопка нажав на нее появляется такое окно: 1. Если проблема на сайте с нашей стороны, например видео удалено то пользователь жмет галку и мне на мыло приходит сообщение. 2. Если например таймаут операции или какая то другая причина:
Во втором случае идет переход на обычную картинку, просто открывается на странице картинка. И я письма не получаю. Выглядит и работает это страшно некрасиво))) Да и многие понимают что фейк.
Такое решение исправило одну серьезную проблему, когда любая жалоба приходила на мыло, было много ложных "тревог".
Нашел можно сказать тоже самое что я хотел, но полностью на скрипте и нормально работающую:
Установка: 1. Создаём почтовую форму с следующими параметрами: - E-mail отправителя - Тема письма - Текст сообщения - Ссылка (text)
2. Это ставим в Нижнюю часть сайта: Код <script type="text/javascript"> var form_id = 4; // Замените на ID созданной вами формы $.getScript("ccылка на js скрипт "); </script>
var form_id = 4; - Укажите ID обратной формы
3. Это ставим в нужное место:
Код <a href="javascript://" onclick="trane73.report()">Сообщить о проблеме</a>
4. Создаем js документ и загружаем код в него:
Код /* * Автор скрипта: http://trane73.ru/ * 05.02.2013 (TRANE73) * Сообщение о проблеме [uWnd - Почтовые формы] для uCoz * Изменение этих строк запрещено */
var trane73 = { report: function () { new _uWnd('report','Сообщить о проблеме', 450, 350, { alert: 1, modal: 1, resize: 1, fadespeed: 600, align: 0 }, '<div align="center"><strong><h3>Пожалуйста, укажите проблему, которую вы обнаружили</h3></strong></div><br /><label><input type="radio" name="variable" class="report" /> <span>Вместо плеера надпись: "Это видео изъято из публичного доступа"</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Вместо плеера надпись: "Данная видеозапись закрыта приватностью и недоступна для просмотра</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Вместо плеера черный фон без надписей</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Перепутан номер серии, выпуска или сезона</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Видеозапись обрывается, недоходя до конца</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>В видеозаписи нет звука или звук очень плохого качества</span></label><br /><label><input type="radio" name="variable" class="report" /> Ваш вариант сути проблемы: <input type="text" name="report" value="" maxlength="200" size="40" /></label><div align="center"><input type="button" value="Отправить уведомление" onclick="trane73.reportSend()" /></div>'); }, reportSend: function() { if($('[name="variable"]:checked').length) { $.post("/mail", { jkd498: 1, jkd428: 1, f1: 'report@' + document.domain, f2: 'Сообщение о проблеме', f3: $('[name="variable"]:checked').parent().find('[name="report"]').length ? $('[name="variable"]:checked').parent().find('[name="report"]').val() : $('[name="variable"]:checked').parent().find('span').text(), f4: location.href, id: form_id, a: 1, o: 1 }, function(data) { _uWnd.alert("Ваше сообщение успешно отправлено!", "Успешно", {close: 1}) _uWnd.close('report') }) } else alert('Не выбран ни один вариант проблемы!') } };
Сама проблема заключается в создании новой функции которая бы запускала при нажатии на ratio окно в котором бы сообщалось что ваше сообщение доставлено. Но на самом деле оно бы не доставлялось.
Код <div align="center"><strong><h3>Пожалуйста, укажите проблему, которую вы обнаружили</h3></strong></div><br /><label><input type="radio" name="variable" class="report" /> <span>Вместо плеера надпись: "Это видео изъято из публичного доступа"</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Вместо плеера надпись: "Данная видеозапись закрыта приватностью и недоступна для просмотра</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Вместо плеера черный фон без надписей</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Перепутан номер серии, выпуска или сезона</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>Видеозапись обрывается, не доходя до конца</span></label><br /><label><input type="radio" name="variable" class="report" /> <span>В видеозаписи нет звука или звук очень плохого качества</span></label><br /><label><input type="radio" name="variablee" class="report"><span>[b]Ложное сообщение[/b]</span></label><br><label><input type="radio" name="variable" class="report" /> Ваш вариант сути проблемы: <input type="text" name="report" value="" maxlength="200" size="40" /></label><div align="center"><input type="button" value="Отправить уведомление" onclick="trane73.reportSend()" /></div>
Получается нужно создать новое name="variablee" и задать ему новое всплывающее окно при его активации и нажатии поля value="Отправить уведомление" Подскажите с какого места или можно ли как то в конце прописать обращения к скрипту, по правилам написания вне скрипта нельзя обращаться к объектам внутри скрипта. Я сколько раз пробовал, у меня вообще скрипт перестает запускаться Никаких реакций(((
Сообщение отредактировал PuerMAN - Понедельник, 28.04.2014, 01:40 | | |
|
|
2014-04-27Дата: Воскресенье, 27.04.2014, 02:32 | Сообщение # 2 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
PuerMAN, Подскажите с какого места или можно ли как то в конце прописать обращения к скрипту, по пр Просто сделать проверку на то, где именно стоит галочка. И если стоит на чекбоксе со словом «ложная» выводить фальш-окно и выходить из функции, без отправки сообщения. Типа: Код reportSend: function() { if($('[name="variable"]:checked').length) { if($('[name="variable"]:checked').parent().find('span').text().indexOf('Ложное')!=-1){ _uWnd.alert("Ваше сообщение успешно отправлено!", "Успешно", {close: 1}); _uWnd.close('report'); return; }; $.post("/mail", { ...
| | |
|
|
2014-04-27Дата: Воскресенье, 27.04.2014, 18:33 | Сообщение # 3 |
Сержант
Группа: Проверенные
Статус: Offline
|
Проверил работает))) Ложное заменил на Тайм-аут операции.
Код [quote=likbezz, [url=http://likbezz.ru/forum/60-1717-37500-16-1398551563]Вс, 27.04.2014, 04:32:43[/url]]if($('[name="variable"]:checked').parent().find('span').text().indexOf('Ложное')!=-1){ _uWnd.alert("Ваше сообщение успешно отправлено!", "Успешно", {close: 1}); _uWnd.close('report'); return; }; [/quote]
Возник еще вопрос, например я захочу добавить больше ложных полей?
Код [quote=likbezz,]reportSend: function() { if($('[name="variable"]:checked').length) { if($('[name="variable"]:checked').parent().find('span').text().indexOf('Ложное')!=-1){ _uWnd.alert("Ваше сообщение успешно отправлено!", "Успешно", {close: 1}); _uWnd.close('report'); return; }; if($('[name="variable"]:checked').parent().find('span').text().indexOf('Ложное2')!=-1){ _uWnd.alert("Ваше сообщение успешно отправлено!", "Успешно", {close: 1}); _uWnd.close('report'); return; }; $.post("/mail", {[/quote]
Я вот так сделал, работает. Может как то короче можно через запятую, что то вроде перечислить условия, если Ложное,Ложно2,Ложное3?
Сообщение отредактировал PuerMAN - Воскресенье, 27.04.2014, 18:36 | | |
|
|
2014-04-27Дата: Воскресенье, 27.04.2014, 22:15 | Сообщение # 4 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
Возник еще вопрос, например я захочу добавить больше ложных полей? Тогда типа так: Код if($('[name="variable"]:checked').length) { var vtext=$('[name="variable"]:checked').parent().find('span').text(); if(vtext.indexOf('Ложное')!=-1 || vtext.indexOf('Ложное2')!=-1){ _uWnd.alert("Ваше сообщение успешно отправлено!", "Успешно", {close: 1}); _uWnd.close('report'); return; }; ...
Может как то короче можно через запятую, что то вроде перечислить условия, если Ложное,Ложно2,Ложное3? - используется «||» - означает «или» Ну а текст - в переменную - «vtext», что бы не тащить гору кода..
| | |
|
|
2014-04-28Дата: Понедельник, 28.04.2014, 05:13 | Сообщение # 5 |
Сержант
Группа: Проверенные
Статус: Offline
|
- используется «||» - означает «или» Ну а текст - в переменную - «vtext», что бы не тащить гору кода..
Спасибо за помощь, скрипт работает как нужно, вообще доволен))))
| | |
|