Как установить текстовое значение для document.activeElement? - PullRequest
2 голосов
/ 31 января 2011

Зная, что мой document.activeElement является полем ввода (я точно не знаю названия компонента, но, например, это может быть поле ввода поиска Google), как я могу установить текст на нем программно?

- обновить

Я пытаюсь сделать это из приложения xul через javascript после загрузки страницы.Команда вставки работает нормально, поэтому я знаю, что поле имеет фокус.(и я не поместил тег Xul, потому что это просто javascript)

Ответы [ 5 ]

1 голос
/ 01 февраля 2011

Не видя ваш код и контекст, в котором он работает, я могу только строить догадки.Тем не менее, я предполагаю, что вы звоните document.activeElement из своего приложения XUL, что означает, что document является документом Chrome, а не страницей содержимого.В этом случае активным элементом может быть элемент browser или iframe, который вы используете для отображения содержимого.

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

См. Ссылку mozilla . Это тот же тип, что и document.getElementById()

document.activeElement.value = 'new value';
1 голос
/ 31 января 2011

Если вы уверены, что это поле ввода текста, просто установите значение:

document.activeElement.value = 'value'
0 голосов
/ 06 февраля 2011

Если вы хотите сфокусированный элемент, где бы он ни находился относительно данного окна приложения, например, он может находиться внутри элемента <browser>, используйте document.commandDispatcher.focusedElement.value, который совпадает с document.commandDispatcher.focusedWindow.document.activeElement.value.Это дает вам элемент, над которым работает cmd_paste.

0 голосов
/ 01 февраля 2011

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

Что я сделал, чтобы все заработало (после помещения содержимого в буфер обмена):

controller.doCommand('cmd_selectAll');
controller.doCommand('cmd_paste');
...