|
Развлечением вчерашнего вечера (а заодно и информационным поводом для этого поста) стала имплантация в paradigm.ru системы выявления ошибок Orphus. Процесс прошел успешно, хотя и не так гладко, как предполагалось.
В последней версии Орфуса появилась возможность комментировать найденные ошибки, для чего по нажатию Ctrl-Enter в середине страницы появляется форма с текстовым полем. И все бы хорошо, но она позиционируется не в середине клиентской области окна браузера, а в геометрическом центре страницы. Соответственно, если страница длинная, вертикальный скролл неуместно передергивается при передаче фокуса в строку ввода.
Скриншот с форума, на котором окно орфуса появилось за пределами видимой области страницы
Глюк описан на форуме и, по всей видимости, происходит не всегда, а только при наличии каких-то особенностей в коде страницы. Готового решения там я не нашел, поэтому пришлось ковырять код самому (при всей моей нелюбви к JavaScript).
По ходу дела выяснилось, что Орфус — совсем даже не опен сорс и его код обфусцирован до почти полной нечитаемости. В результате, вместо того чтобы все по-человечески исправить, моего терпения хватило только на quick and dirty patch: добавил в начало две функции для правильного определения координат и использовал их при позиционировании.
На мой взгляд, если уж с позиционированием div возникают такие сложности, более простым и переносимым решением было бы использование popup окон браузера — так ведь тоже можно отправлять сообщения об ошибках без перезугрузки страницы.
Не имею понятия, можно ли распространять видоизмененный Орфус, поэтому ссылку на починенную версию приведу здесь только для демонстрации (: (все права разработчика сохранены). В ближайшее время отпишу автору. Будем надеяться, в следующей версии доработка надфилем уже не понадобится.
Ссылки по теме
- Грамотность on-line, или Использование системы Orphus — статья про Орфус в «Куроводстве» Дмитрия Котерова.
- Cross Browser Window Size And Centering — две неплохие функции на JavaScript, одна из которых определяет размеры окна, а другая — находит координаты центра. Работают вроде бы во всех актуальных версиях главных браузеров.
Написать комментарий
|
# gafar: (10 апреля, 2011 @ 22:13)
Спасибо за “демонстрацию починенной версии” – гораздо приятнее чем оригинал.