@Malkolm163

Как в contenteditable изменить поведение Enter на Ctrl + Enter?

Есть contenteditable элемент.
Меня вполне устраивает его поведение по Enter и дополнительное я написал на Ctrl + Enter, но вот понадобилось поменять их местами. Т.е. по Ctrl + Enter выполнять то, что по дефолту выполняется на Enter...

а там обычно добавляется новая строка... в ходе экспериментов получилось менять курсор на последнюю строку, но вот не получается переместить его на нужную строку, если например я нажимаю Ctrl + Enter посреди текста (стандартное поведение бы просто разбило строку на 2 div, и раскидала бы текст по ним, а потом поставило бы курсор перед началом 2й половины текста, но вот все это и не получается, поэтому и вопрос:
а можно ли как то использовать стандартное поведение (не переписывая его "на свой лад", а просто взять и "повесить" его на Ctrl + Enter в том виде в каком оно было на Enter а на Enter повесить что-то свое?
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
melodyn
@melodyn
Лучше нативная смерть, чем фреймворковая жизнь.
А вы что, зашили поведение на Ctrl + Enter прямо в callback настолько, что теперь не можете прокинуть его в качестве другого callback? :) По идее, ваш код выглядеть должен как-то так:
sayHello = (params, tarams) => magic(params, tarams)
sendToHell = (user, sin) => judgmentDay(user, sin)

addEventListener('Enter', sayHello);
addEventListener('Ctrl+Enter', sendToHell);


Соответственно, при необходимости выполнять одно и то же действие для обоих случаев, нужно будет просто прокинуть имя другого хэндлера. Если по какой-то причине для Ctrl+Enter другой интерфейс callback, то можно заговнякать адаптер на скорую руку
addEventListener('Ctrl+Enter', (userAsXML, sinAsJson) => sendToHell(user.toJson(), sinAsJson));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы