Вы, вероятно, могли бы эмулировать желаемое поведение (возможно, с меньшими проблемами, чем при обнаружении клавиши TAB) с помощью событий onfocus / onblur соответствующих элементов ввода. Таким образом, вы не заботитесь о том, как пользователь попал на ввод редактора, будь то через вкладки или щелчок, или какой-то странный аддон FireFox, который позволяет переходить к элементу ввода по его идентификатору / имени / # (я почти определенное такое дополнение существует:)
UPDATE . ОП уточнил проблему в комментариях.
ПРОБЛЕМА :
В обычном случае вы можете использовать атрибут "TABINDEX
" элемента <input>
, чтобы контролировать, что при выделении из поля ввода "Тема" (в форме электронной почты) фокус попадает на поле ввода "Body" в электронном письме. Это делается просто путем назначения правильно упорядоченных значений атрибуту «TABINDEX» обоих полей ввода.
Проблема в том, что атрибут TABINDEX упорядочивает элементы только в одном кадре. Таким образом, если поле ввода «Body» фактически находится во внутреннем IFRAME
, вы не можете перейти из «Subject» в родительском фрейме прямо в «Body» в IFRAME, используя порядок TABINDEX.
РЕШЕНИЕ
В родительском фрейме создайте новый элемент <INPUT>
. Он будет невидимым (например, с помощью CSS или размером 1x1), будет иметь имя / идентификатор «Body_clone» и будет иметь значение атрибута TABINDEX, которое следует за TABINDEX поля «Subject». Он также будет иметь обработчик onFocus, который просто найдет элемент ввода «Body» внутри IFRAME и вызовет focus()
для этого элемента.
Вы можете сделать то же самое с табулированием / смещением табуляции из элемента IFRAME «Body», создавая элементы ввода «Subject_iframe_clone» и «After-body_iframe_clone» в IFRAME, которые работают так же, как «Body_clone».