Скрипт нашли ошибку нажмите ctrl enter

Плагин позволяет получать от посетителей сайта уведомления о ошибках на сайте.

Визуально плагин выглядит так:

Скрипты плагина расположены в директории /javascript/jquery.yapro.Spelling/

Чтобы подключить данный плагин нужно:

1. перед тегом вписать следующее:

<script language=»Javascript» type=»text/javascript» src=»/javascript/jquery.yapro.Spelling/latest.js»></script>
<script language=»Javascript» type=»text/javascript» src=»/javascript/jquery.yapro.alert/latest.js»></script>
<link href=»/javascript/jquery.yapro.alert/latest.css» type=»text/css» rel=»stylesheet»>

2. Завести себе jabber-аккаунт, например на сайте jabber.ru и вписать данные в файл /jabber.php
К примеру, если Вы завели аккаунт sergey@jabber.ru

$jabber = array(‘server’=>’jabber.ru’, ‘port’=>5222, ‘nikname’=>’sergey@jabber.ru’, ‘password’=>’sergey12345’, ‘toJID’=>’sergey@jabber.ru’);

3. Настроить sergey@jabber.ru у себя на ПК (в любом клиенте, например Miranda, QIP и т.п.)
Проверьте работу скрипта на сайте выделив текст и нажав Ctrl + Enter, после чего получите сообщение об ошибке прямо в чат-клиент.

4. В любое место страницы вставить HTML-код подсказки, что на сайте действует такой плагин:

<div style=»line-height:23px»>Ошибка в тексте? Выделите её мышкой и нажмите:
   <span class=»keyButton»>Ctrl</span> + <span class=»keyButton»>Enter</span>
</div>

5. CSS-код советую применять такой:

SPAN.keyButton {
   background:none repeat scroll 0 0 #ECECEC;
   border-color:#FFFFFF #BBB8AB #BBB8AB #FFFFFF;
   border-style:solid;
   border-width:1px;
   padding:1px 4px;
}

Оповещение на E-mail

Если Вы не хотите настраивать Jabber или у вас просто не получается его настроить, Вы можете получать оповещение на электронный ящик. Для этого просто создайте в директории /javascript/jquery.yapro.Spelling/ файл email.php в котором напишите свой E-mail, например так:

<?php
$email = ‘love@mal.ru’;
?>

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


12.01.2011 08:38

Доброго времени суток.

В данной статье расскажу как реализовать функционал, который бы позволял пользователям сайта сообщать контент-менеджерам найденные о найденной на сайте ошибке. Ошибка будет высылаться почтовым уведомлением.
Интерфейсные окна будут отрисованы с помощью новой JS-библиотеки продукта.

Показать скрытое содержание

Итак, пользователь находит на сайте ошибку, выделяет текст, нажимает Ctrl+Enter и получает форму:

Вся логика заключена в компоненте feedback.error, который можете скачать

здесь.

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

и шаблон к нему:

Всё, после этого механизм должен заработать.

Теперь подробнее (так сказать для разработчиков), что находится в скрипте script.js:

function SendError(event, formElem)

Объявление функции-обработчика, которую мы повесили на <body>

 if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))

Ждём нажатия Ctrl+Enter.

var Dialog = new BX.CDialog({
            title: "На сайте обнаружена ошибка!!",
            head: "В чём заключается ошибка?",
            content:    '<form method="POST" id="help_form" action="/bitrix/templates/.default/send_error.php">
                                 <textarea name="error_desc" style="height: 78px; width: 374px;"></textarea>
                                 <input type="hidden" name="error_message"value="'+getSelectedText()+'">
                                 <input type="hidden" name="error_url" value="'+window.location+'">
                                 <input type="hidden" name="sessid" value="'+BX.bitrix_sessid()+'"></form>',
            resizable: false,
            height: '198',
            width: '400'});

Определяем параметры будущего окна и его содержимого.

Определяем набор кнопок:

Dialog.SetButtons([
{
   'title': 'Отправить',
   'id': 'action_send',
   'name': 'action_send',
   'action': function(){
      BX.ajax.submit(BX("help_form"));
      this.parentWindow.Close();
   }
},
{
   'title': 'Отмена',
   'id': 'cancel',
   'name': 'cancel',
   'action': function(){
      this.parentWindow.Close();
   }
},
]);

и выводим окно:

Функция getSelectedText() получает выделенный мышью текст.

Отправка письма идёт в тексте файла component.php:

if (check_bitrix_sessid() && $_SERVER['REQUEST_METHOD'] == "POST" && !empty($_REQUEST["error_message"]) && !empty($_REQUEST["error_url"]))
{
   $arMailFields = Array();
   $arMailFields["ERROR_MESSAGE"] = trim ($_REQUEST["error_message"]);
   $arMailFields["ERROR_DESCRIPTION"] = trim ($_REQUEST["error_desc"]);
   $arMailFields["ERROR_URL"] = trim ($_REQUEST["error_url"]);
   CEvent::Send("BX", SITE_ID, $arMailFields);
}

Updated:

http://dev.1c-bitrix.ru/community/web…3448#13448

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

Идея, естественно, не нова, даже совсем не нова, одним из первых этот сервис поднял Orfus. Затем появилось много подобных клонов, и Orfus вел с ними войну. Минус использования системы от Orfus’а — регистрация на сервисе, и использование скрипта с их серверов.

Силами данного модуль отмеченная(выделенная) ошибка отправляется на почту админа сайта и регистрирует ее в базе.

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

История ошибок хранится в базе.

Если ошибку обнаружил зарегистрированный пользователь, то информация об этом пользователе сохраняется.

Это говорит о лояльности и доверии пользователя к магазину. А магазин, в свою очередь, так же может принять решение о поощрении покупателя.

Совместимость: Работает на всех версиях , не используется каких либо особых специфических функций движка.

Установка: Не представляет сложности (для  1.5 ручная установка Vqmod)

Demo:

http://demo.slasoft.kharkov.ua

http://demo.slasoft.kharkov.ua/admin demo/demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
document.addEventListener('DOMContentLoaded', () => {
 
    (function MESSAGE_OF_ERROR() {
 
        const errorOfMessage = {
            current_page: null,
            current_htmlElement: null,
            current_itIsAllClassElements: null,
            current_text: null,
            get info() {
                return `Страница на которой была найдена ошибка в тексте: ${this.current_page}
                        HTML элемент в котором содержится данный текст: <${this.current_htmlElement}>
                        CSS классы этого элемента: ${this.current_itIsAllClassElements} 
                        Текст: ${this.current_text}`;
            },
            get page() {
                return `Страница на которой была найдена ошиька в тексте: ${this.current_page}`;
            },
            get html() {
                return `HTML элемент в котором содержится данный текст: <${this.current_htmlElement}>`;
            },
            get itIsAllClassElements() {
                return `CSS классы этого элемента: ${this.current_itIsAllClassElements}`;
            },
            get text() {
                return `Текст: ${this.current_text}`;
            }
        };
 
 
        document.addEventListener('keypress', e => {
            const text = getSelection().toString();
            if(e.code === 'Enter' && e.ctrlKey) {
                if(text.length) {
                    errorOfMessage.current_text = text;
                    createElementsForErrorMessage();
                } else {
                    errorOfMessage.current_text = 'Была выделена пустая строка, это системное сообщение...';
                    createElementsForErrorMessage();
                }
            }
        });
    
        document.addEventListener('selectstart', e => {
            const page = document.location.href;
            const target = e.target;
            const htmlElement = target.tagName || target.parentElement.tagName;
            let itIsAllClassElements = target.parentElement;
    
            while(itIsAllClassElements !== null
               && itIsAllClassElements.classList.length === 0) {
 
                itIsAllClassElements = itIsAllClassElements.parentElement;
 
            }
 
            if(itIsAllClassElements === null) return;
 
            itIsAllClassElements = Array.from(itIsAllClassElements.classList)
                                        .map(el => el);
            
            errorOfMessage.current_page = page;
            errorOfMessage.current_htmlElement = htmlElement.toLowerCase();
            errorOfMessage.current_itIsAllClassElements = itIsAllClassElements;
        });
 
        function createElementsForErrorMessage() {
            document.body.style.overflowY = 'hidden';
 
            const node = createElementsForModal();
            const {modal, error, hr, span, containerButton, success, cansel} = node;
            createStyleForNodeElements(modal, error, span, containerButton, success, cansel);
 
            modal.append(error);
            containerButton.append(success, cansel);
            error.append(hr, span, containerButton);
            document.body.append(modal);
 
            setTimeout(() => error.style = 'transform: translate(0, 0);', 500);
 
            addEvent(modal, error, success, cansel);
        }
 
        function createElementsForModal() {
            const modal = document.createElement('div');
            const error = document.createElement('div');
            const hr = document.createElement('hr');
            const span = document.createElement('span');
            const containerButton = document.createElement('div');
            const success = document.createElement('button');
            const cansel = document.createElement('button');
            return {modal, error, hr, span, containerButton, success, cansel};
        }
 
        function createStyleForNodeElements(modal, error, span, containerButton, success, cansel) {
            modal.classList.add('modal-error-of-message');
            error.classList.add('error-of-message');
            span.classList.add('error-text--eom');
            containerButton.classList.add('container-button--eom');
            success.classList.add('button--eom', 'btn-eom-success');
            cansel.classList.add('button--eom', 'btn-eom-cansel');
            error.textContent = 'Вы хотите сообщить об ошибке в следующей строке:'
            span.textContent = errorOfMessage.text;
            success.textContent = 'Отправить';
            cansel.textContent = 'Отменить';
        }
 
        function addEvent(modal, error, success, cansel) {
            modal.addEventListener('click', e => {
                const target = e.target;
                if(target.classList.contains('modal-error-of-message')
                || target.classList.contains('btn-eom-cansel')) {
                    error.style.transform = '';
                    setTimeout(() => {
                        modal.remove();
                        document.body.overflowY = '';
                    }, 500);
                } else if(target.classList.contains('btn-eom-success')) {
                    // ajax запрос на сервер
                    console.log(errorOfMessage);
                    // глобальный объект с данными, не знаю зачем
                    window.errorOfMessage = errorOfMessage;
                } 
            });
        }
 
    }());
 
});

Сообщить об опечатке

*Подключить плагин можно в разделе консоли вашего сайта Плагины.

С помощью данного плагина посетители смогут сообщить об опечатках или ошибках, замеченных на ваших сайтах.

Для того, чтобы отправить сообщение об ошибке, необходимо выделить текст на странице сайта, где замечена ошибка, и нажать сочетание клавиш Ctrl+Enter или специальную ссылку. Появится диалоговое окно, в котором пользователь сможет написать комментарий и отправить сообщение об ошибке.

Уведомления об ошибках приходят на е-мэйлы, указанные в настройках плагина. Информация об опечатках в консоли сайта не хранится.

Для работы плагина нужно настроить 2 важные вещи:

  1. Куда будут приходить сообщения об ошибке.
  2. Рассказать вашим пользователям, что на вашем сайте есть возможность сообщить об опечатке и как этим пользоваться.
1. Добавление e-mail адреса, на который будет отправляться уведомление об опечатке

Для того, чтобы добавить е-мэйл получателя зайдите в раздел консоли «Настройки» — «Сообщение об опечатке».

Введите в поле е-мэйл, на который будут отправляться уведомления об опечатках:

Также вы можете указать несколько адресов, е-мэйлы пишите через запятую:

2. Информирование посетителей о том, каким образом они могут сообщить об опечатке

Вы можете разместить в любом доступном месте вашего сайта информацию о том, как можно сообщить об опечатке на вашем сайте. Можно просто разместить текст в заметном месте

Заметили опечатку?
Выделите текст и нажмите CTRL+ENTER.

Или вы можете воспользоваться виджетом, с помощью которого можно добавить ссылку, простую кнопку или любое изображение, при нажатии на которое будет срабатывать сочетание клавиш Ctrl+Enter (удобно в частности для мобильных устройств).

Зайдите в раздел консоли «Внешний вид» — «Виджеты», перетащите в нужную область виджет «Сообщение об опечатке».

Заголовок — введите заголовок виджета (поле можно оставить пустым).

Описание сверху — добавьте описание, которое будет выводиться перед ссылкой или кнопкой. В описании можно использовать следующие html-теги форматирования текста: b,i,u,li,ul,h1,h2,h3,h4,h5,br,center,small.

Например, в этом поле можно вставить информационный текст « Заметили ошибку?
Выделите текст и нажмите CTRL+ENTER или ссылку (картинку, кнопку) ниже.»

Тип — выберите тип ссылки, при нажатии на которую будет срабатывать Ctrl+Enter.

  • Ссылка — простая текстовая ссылка.
  • Изображение — можно будет вывести любую картинку.
  • Кнопка — будет отображаться кнопка с заданным цветом и текстом.

Параметр — Для типа «Ссылка» введите текст (например, «сообщите об ошибке»). Для типа «Изображение» введите путь к изображению (например: http://site.ru/image.jpg). Для типа «Кнопка» введите текст, который будет отображаться на кнопке.

Здесь можно посмотреть где брать ссылку на изображение, загруженное на ваш сайт.

Цвет — в данном поле можно задать цвет ссылки или цвет кнопки (в зависимости от выбранного типа).

Размер — в данном поле можно задать размер текста ссылки на кнопке, а также ширину изображения, если выбрана картинка.

Описание снизу — добавьте описание, которое будет выводиться после ссылки или кнопки. В описании можно использовать следующие теги форматирования текста: b,i,u,li,ul,h1,h2,h3,h4,h5,br,center,small.

Важно! Чтобы верхний текст, кнопка (ссылка, изображение) и нижний текст не сливались в одну массу, используйте тег <br> или просто перенос на новую строку клавишей Enter. В поле «Описание сверху» тег или перенос добавляйте после текста, а в поле «Описание снизу» — перед текстом.

Ошибки и описки на сайте

Перепробовали несколько внешних систем, позволяющих в удобной форме сообщать на почту об описках и ошибках на сайте. Все они какие-то очень кривые. В результате теперь у нас своя, встроенная. Работает как полагается.

Чтобы сообщить об описке или ошибке на сайте, выделите слово или словосочетание и нажмите Ctrl+Enter — появится вот такая форма.

Там цитируется весь абзац (чтобы мне проще было понять, где это), можно дать свой комментарий, но это необязательно.

Возможность эта доступна только зарегистрированным и залогиненным пользователям. Если пользователь вместо сообщений об ошибках будет слать всякую ерунду, он будет баниться, а все его накопленные баллы сгорят.

Спасибо всем, кто указывает на описки и ошибки на сайте — вместе мы делаем этот мир лучше.

Правила написания сообщений об ошибках

Народная мудрость гласит, что хорошие сообщения об ошибках должны быть вежливыми, точными и конструктивными. С приходом Web к этим требованиям добавились еще несколько: делайте так, чтобы сообщение об ошибке было четко видно; в случае ошибки пользователь не должен тратить много времени на ее исправление; обучайте пользователей по ходу дела.

Правила создания эффективных сообщений об ошибках не меняются вот уже 20 лет. Хорошее сообщение об ошибке должно:

  • Явно указывать, что что-то не так. Самое плохое сообщение об ошибке это то, которое не было создано. Если пользователи делают ошибку и не получают никакого отклика от системы, это самое худшее для них. Например, приложение работы с электронной почтой имеет несколько ситуаций, где указание о произошедшей ошибке было бы явно полезным. Скажем, вы отправили почтовое сообщение, которое было благополучно проглочено системой, но так и не достигло адресата. Еще пример? Вы сообщаете в письме, что прилагаете к нему файл, но просто забыли сделать это. Вот тут-то и нашлась бы работа для этой глупой скрепки из MS Office: «Похоже, вы хотели прикрепить файл к вашему сообщению, но не сделали этого. Хотите сделать это?».
  • Быть написано на человеческом языке, а не с использованием таинственных кодов и сокращений типа » произошла ошибка типа 2″.
  • Быть вежливым и не обвинять пользователей в том, что они такие глупые или сделали что-то не так, как например в сообщении «запрещенная команда».
  • Точно описывать источник проблемы, а не просто выдавать общие фразы типа » синтаксическая ошибка».
  • Давать конструктивный совет о том, как исправить проблему. Например, вместо того, чтобы сообщать о том, что товара » нет в наличии», ваше сообщение об ошибке должно либо сообщать, когда товар будет в наличии, или предлагать пользователям настроить отсылку им сообщения-уведомления, когда товар появится в наличии.

Самая распространенная ошибка в Web — 404 — нарушает большинство из этих правил. Я рекомендую вам написать свое собственное сообщение об ошибке 404 вместо того, чтобы полагаться на скупую серверную фразу «page not found».

Новые правила

Сложность работы с веб-страницами привела к появлению еще одного правила, которое не требовалось в старые времена. В интерфейсе DOS пользователи набирали команду и сообщение об ошибке появлялось в следующей строке на экране. В современных графических оболочках когда пользователь выбирает ошибочную команду, сообщение об ошибке выводится в большом диалоговом окне в центре экрана, и оно не исчезает до тех пор, пока пользователь не примет его. Однако, в Web сообщения об ошибках часто спрятаны в тексте страницы, из-за чего мы выводим следующее правило: сообщение об ошибке должно быть:

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

Я часто замечал, как пользователи совершают ошибку в веб-форме, подают форму и получают на экране опять ту же самую форму без какого-либо указания на то, что с ней не так. Часто в верху страницы появляется небольшое сообщение об ошибке, но так как пользователи смотрят на странице в первую очередь на то, с чем они работают (то есть, на поля формы), они как правило не замечают этого сообщения.

Точно так же неверно будет обозначать сообщение об ошибке только красным цветом. Это нарушение одного из старейших и простейших правил создания технологий, доступных пользователям, у которых проблемы со здоровьем: никогда не используйте в интерфейсе только цвет для обозначения состояния системы; всегда дополняйте его еще какими-нибудь сигналами, которые могут увидеть люди с проблемами в восприятии цвета.

Вот еще несколько правил, которые позволят смягчить неприятную ситуацию, в которую попадает пользователь при ошибке:

  • Сохраняйте как можно больше от работы, сделанной пользователем. Позволяете пользователям исправить ошибку в своем действии вместо того, чтобы предлагать ему все начать сначала. Например, выводя ему результаты поиска, показывайте там же поле поиска и в нем выводите те ключевые слова, которые пользователь искал, чтобы он их мог исправить и улучшить результат. Если поиск не дал никаких результатов, дайте пользователю возможность одним щелчком мыши расширить область поиска.
  • Сократите работу по исправлению ошибки. Если возможно, постарайтесь, чтобы система догадалась о правильном действии и предложила пользователю выбрать это правильное действие из небольшого списка вариантов. Например вместо того, чтобы просто написать «название города не соответствует его почтовому индексу», дайте пользователю возможность щелкнуть на кнопке и выбрать в списке город, соответствующий его почтовому индексу.

Обучение пользователей

И наконец, вы наверное уже знаетеПервый Закон Нильсена о компьютерной документации: люди ее не читают. Этот закон действует еще сильнее для веб-сайтов, где пользователи действительно избегают читать то, что не существенно для их задачи. Щелкнуть по ссылке «Помощь»? Да ни за что.

Пользователи читают документацию к системе только тогда, когда у них возникает проблема (это Второй закон). Они особенно внимательно ее читают, когда хотят исправить ошибочное действие. В этом случае вы можете использовать сообщения об ошибках в качестве обучающего материала, и подавать в них эти знания малыми порциями. Естественно, сообщения об ошибках должны быть краткими и по делу, как впрочем весь контент веб-сайта. Однако, сообщения об ошибках все-таки могут дать людям крупицы информации о том, как работает система, и подсказать, как с нею лучше работать. И в завершении этой темы, Web вводит еще одно правило:

Понравилась статья? Поделить с друзьями:
  • Скрин ошибки перевода на карту
  • Скрин ошибки в сбербанк онлайн
  • Скрин ошибки 404 на телефоне
  • Скрин ошибка на учи ру
  • Скрепя сердце он согласился на это предложение ошибка