Элемент ContentEditable не реагирует на горячие клавиши - PullRequest
1 голос
/ 17 января 2011

Я разрабатываю расширение Chrome, которое внедряет код JS во все открытые вкладки. Задача этого кода включает отображение текстового поля, реализованного как contentEditable <div>, чтобы разрешить форматирование. Тем не менее, элемент contentEditable не подходит для некоторых веб-сайтов, например Twitter.

Попробуйте сами:

  1. Перейти на twitter.com
  2. Вставьте javascript:document.body.setAttribute('contentEditable', true); в адресную строку и нажмите Enter.
  3. Щелкните в любом месте документа - теперь вы сможете редактировать текст.
  4. Попробуйте ввести j или k. Вы увидите: символ не появляется, вместо этого выделение перемещается (твит в списке будет выделен).

Я изо всех сил пытался выяснить, как реализована навигация с помощью клавиатуры в Твиттере, но не смог найти никаких подсказок. Можете ли вы дать мне какие-либо советы о том, как решить эту проблему (и избежать подобных проблем на других сайтах)?

Использование iFrame для ввода вызывает другие, очень странные ошибки, поэтому я хочу избежать этого, если это возможно.

1 Ответ

1 голос
/ 20 января 2011

Пожалуйста, убедитесь, что у вас не установлено расширение клавиатуры vim в Google Chrome. J и K затем используются для ярлыков навигации. (Вверх / вниз).

...