2012-04-09 2 views
1

Можно ли моделировать клавиши со стрелками в содержимом редактируемого div? Я попытался запустить события «ключевого нажатия», но кажется, что contenteditable игнорирует их. (Мне просто нужно решение webkit/safari)имитируют клавиши курсора (влево, вправо, вниз, вверх стрелки) в контентном редактируемом div?

Мне просто нужно переместить каретку внутри div, как клавиши со стрелками, но программно.

Возможно, может помочь библиотека Rangy от Tim Down?

Спасибо!

+0

есть jquery возможность? – Jlange

+0

Да, без проблем с JQuery – user1322373

ответ

1

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

В этом случае вы должны сделать это вручную, что сложно. Клавиши со стрелками работают над видимым текстом на странице, что означает, что вам нужно учитывать такие вещи, как смятые пробелы, подразумеваемые разрывы строк от <br> и блокировать элементы, элементы, скрытые с помощью свойства CSS display и многих других тонкостей. Кроме того, имитация клавиш со стрелками вверх и вниз зависит от получения точных координат пикселей произвольных символов на странице, что нетривиально в большинстве браузеров.

Я работаю над средством навигации по видимому тексту на странице в Rangy, что поможет с имитацией клавиш со стрелками влево и вправо, но Rangy не может справиться со стрелками вверх и вниз.

+0

Большое спасибо Тиму, это кажется немного сложнее, чем я думал, во всяком случае имитируя клавиши со стрелками влево и вправо, мне хорошо, пожалуйста, дайте мне знать, когда у вас есть что испытать;) – user1322373

+0

Привет, Тим, какое-нибудь обновление по этому поводу? Я могу перемещаться влево и вправо с помощью rangy, но когда каретка обнаруживает, что узел BR останавливается и не переходит к следующей строке. любая помощь по этому поводу? – user1322373

+0

@ user1322373: Все еще работает над этим, и приближается к финишу. Должен выпустить первую версию в ближайшие пару недель. Я буду размещать здесь, когда есть новости: http://groups.google.com/group/rangy/topics –

Смежные вопросы