Я разрабатываю расширение Chrome, которое внедряет код JS во все открытые вкладки. Задача этого кода включает отображение текстового поля, реализованного как contentEditable
<div>
, чтобы разрешить форматирование. Тем не менее, элемент contentEditable
не подходит для некоторых веб-сайтов, например Twitter.
Попробуйте сами:
- Перейти на twitter.com
- Вставьте
javascript:document.body.setAttribute('contentEditable', true);
в адресную строку и нажмите Enter.
- Щелкните в любом месте документа - теперь вы сможете редактировать текст.
- Попробуйте ввести
j
или k
. Вы увидите: символ не появляется, вместо этого выделение перемещается (твит в списке будет выделен).
Я изо всех сил пытался выяснить, как реализована навигация с помощью клавиатуры в Твиттере, но не смог найти никаких подсказок. Можете ли вы дать мне какие-либо советы о том, как решить эту проблему (и избежать подобных проблем на других сайтах)?
Использование iFrame для ввода вызывает другие, очень странные ошибки, поэтому я хочу избежать этого, если это возможно.