В данной статье расскажу как реализовать функционал, который бы позволял пользователям сайта сообщать контент-менеджерам найденные о найденной на сайте ошибке. Ошибка будет высылаться почтовым уведомлением. Интерфейсные окна будут отрисованы с помощью новой JS-библиотеки продукта.[spoiler]
Итак, пользователь находит на сайте ошибку, выделяет текст, нажимает Ctrl+Enter и получает форму:
Вся логика заключена в компоненте feedback.error, который можете скачать здесь.
Т.к. сообщение об ошибке будет отправлено на почту, то потребуется создать новый почтовый тип:
и шаблон к нему:
Всё, после этого механизм должен заработать.
Теперь подробнее (так сказать для разработчиков), что находится в скрипте script.js:
function SendError(event, formElem)
Объявление функции-обработчика, которую мы повесили на <body>
К сожалению, не удержался чтобы не поразбираться и не ответить Вам.
Запустите виртуальную машину от Микрософта, для тестирования IE6.
У меня стоит IETester, очень даже наглядно моделируются различные проблемы в IE.
Всплывающий Alert вылазит. Надеюсь, вы не скажете, что это "не критично"?
Так и не смог пронаблюдать данный эффкет, за исключением когда включена отладка javascript и вылезает красный fatal error с последующей отладкой
Этот пассаж вообще не понял. В вашем варианте - конечно они ничего не будут писать. Они будут просто закрывать сайт, на котором установлен такой скрипт. А если бы всё работало нормально, то чем эти пользователи хуже? Они менее грамотные в плане языка?
Это было к тому, что IE6 Умирающее творение. может все таки стоит смотреть вперед а не давать таблетки и кастыли умирающему, но очень "горячо" любимому браузеру. И может данным пользователям стоит намекнуть, что уже пора бы с запорожцев пересесть хотя бы на ладу калину?
Впрочем, сказать, что я удивлён - будет неправдой. Битрикс не только безнадёжно отстал от современного интернета, но ещё и демонстрирует отсутствие понимания задач своих покупателей.
К сожалению, я не менее удивлен Вашему отношению к частным решения, вместо того, чтобы улучшить его, Вы попытались "кого-то\что-то" показать не значимым. Но это не важно. И в целом, решил я поразбираться в проблеме и открыл проблемный js, нашел такой код:
где стояла запятая после фигурной скобки, если ее убрать, то все чудесно работает и в 6 и в 7 IE. К сожалению наш Всемогущий Капризный IE очень чувствителен к этому.
Ну что я могу сказать, Михаил. Браво. И спасибо. Теперь действительно всё работает, и в IE6, и в IE7.
К сожалению, мы живём в стране (вы в своей, я в своей - но они очень похожи в этом), где главенствует принцип "не пнёшь - не полетим". Очень многие вопросы приходится решать через нагнетание, через скандал, через ругань. Не было бы моего сообщения — не было бы и вашего решения. Ограничились бы "хрен с ним, с этим браузером", и всё.
Не хочу сказать, что это относится только к Битриксу. Это относится ко всем и везде - проблемы решаются быстрее и внимательнее, когда клиент начинает проявлять реальное недовольство и "достаёт" своими претензиями.
Ещё несколько моментов откомментирую.
У меня стоит IETester, очень даже наглядно моделируются различные проблемы в IE.
Гораздно менее наглядно, чем в виртуальной машине - поверьте, это проверено. Особенно в том, что касается JS.
Это было к тому, что IE6 Умирающее творение. может все таки стоит смотреть вперед а не давать таблетки и кастыли умирающему, но очень "горячо" любимому браузеру
Я не вижу пока в публичной части никаких сложных реализаций, требующих отказа от IE6. Поэтому и разгорелась эта тема — проблема была не в том, что тут у нас мега-сложный скрипт, который принципиально не может работать в этом браузере, а в том, что просто было лень допиливать его для того, чтобы работало везде. Не нужно приводить в пример Гугл, отказывающийся в некоторых проектах от поддержки IE6 - там это реально требуется. Там действительно сложные технологии, на пике прогресса. Вам в своей CMS и нам в своих проектах такое и не снилось.
Поэтому отказываться просто потому, что надо слегка больше времени потратить на отладку JS — это не дело. 7% аудитории стоят того, чтобы допилить.
Может в Арабских Эмиратах запретят машины старше 3 лет, но это ж не значит, что в остальном мире все имеют возможность пересесть на новые.
Вообщем, надеюсь, теперь в этой теме мы действительно сможем по делу обсудить использование этой безусловно полезной разработки.
К сожалению, мы живём в стране (вы в своей, я в своей - но они очень похожи в этом), где главенствует принцип "не пнёшь - не полетим". Очень многие вопросы приходится решать через нагнетание, через скандал, через ругань. Не было бы моего сообщения — не было бы и вашего решения. Ограничились бы "хрен с ним, с этим браузером", и всё.
К сожалению, это очень грустно.
Так и не смог пронаблюдать данный эффкет, за исключением когда включена отладка javascript и вылезает красный fatal error с последующей отладкой
У меня своя "необычная" сборка с приблудами, поэтому для меня она самая наглядная.
Поэтому отказываться просто потому, что надо слегка больше времени потратить на отладку JS — это не дело. 7% аудитории стоят того, чтобы допилить.
Лично я сторонник более радикальных мер, особенно вглядывая в статистику можно наблюдать потери позиций IE6 от 0.4 до 1% в месяц и можно предположить, что браузер протянет еще 1, ну максимум 2 года.
Удачное решение такого плана сделано на kp.ru (при том, что сам сайт довольно-таки безобразный).
Окошко оформлено симпатично и важный нюанс: кроме выделенного фрагмента дан и текст вокруг. Это удобно и для посетителя, и для тех, кто получит сообщение об ошибке.
Ещё одно пожелание: ввести ограничение на размер выделяемого текста. Если лимит превышен, вместо всплываюшего окна давать alert "Выделен слишком длинный текст!"
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».