Открыть список
Как стать автором
Обновить

Комментарии 13

в смысле document.activeElement
Есть неплохое расширение для jquery hotkeys при помощи его можно сделать очень легко (если не сьест парсер):
$(document).ready(function () {
var href = null;
$(document).bind('keydown', 'Ctrl+right', function(){ href=$('#nextlink').attr('href'); if (href) document.location = href;});
$(document).bind('keydown', {combi:'Ctrl+left', disableInInput: true}, function(){ href=$('#prevlink').attr('href'); if (href) document.location = href;});
});

Да, к сожалению, нередко подобная навигация применяется бездумно — как раз с описанной проблемой текстовых полей.
А вот решение без jQuery. На случай, если в проекте она нигде больше не используется, то и подгружать 60 кб ради навигации будет нехорошо.
Собственно, переписано из Техногретта, но добавлены ссылки вверх, вниз и еще какая-то
Ребята, зачем вы портите мой интернет?

Мне очень нравится перескакивать по тексту курсорчиком. Мне нравится прыгать по словам, используя Ctrl. И в firefox я всегда включаю отображение каретки (клавиша F7).

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

Мне бы очень хотелось что бы была возможность включать или выключать опцию навигации по страницам. И хранить эти опции в куках.

Я понимаю, что представляю меньшинство недовольных, но и вы, вносите хаки в привычный мне пользовательские интерфейс.

Спасибо за внимание. :)

В том-то и дело, уважаемый. В этом и была проблема изначального решения. Как раз я и материл г-на starfake за то, что я не могу по тексту перемещаться с Ctrl. И в том решении, что тут представлено, эта проблема решена.
Что касается активного курсора, то лично я его никогда не использовал, поэтому пока не знаю, как он работает. Но, считаю, раз это используют, то факт надо учитывать и найти решение и этой проблемы.
> На хабре всё правильно реализовано, но почему-то не работает.
Ну, мое лично мнение, что если что-то реализовано правильно, то оно работает :)
На тестовой странице всё работает. На хабре дебагером ошибку отловить не удалось.
Может, потому, что это не ошибка, а часть функционала?:)
Подебажил ещё и выяснил, что на Хабре целых два скрипта реагируют на стрелки. Упомянутый выше postsHandler.js вешается на document#keyup и не реагирует на стрелки в полях ввода. Другой скрипт вешается на window#keydown и срабатывает в полях ввода.

Как я и говорил, для фильтрации полей ввода достаточно проверять event.target.tagName на INPUT и TEXTAREA, а не вешать кучу слушателей на все подряд поля ввода на странице, тем более, что они могут добавляться динамически.

Кроме того, я бы на вашем месте постеснялся приводить примеры на фреймворке, который вы знаете «не очень хорошо». Почитайте хотя бы про цепочность вызовов. При всём уважении, плюса в карму ваш пост не заслуживает.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.