Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№119-01-2006 14:55:20

Sarin2.0
Участник
 
Группа: Members
Зарегистрирован: 18-01-2006
Сообщений: 58

Ввод текста в поле на котором фокус ввода.

Может кто-то сталкивался? Можно ли, в принципе, сделать так, что бы программа на JS вводила текст в поле на котором стоит фокус ввода? Проблема видится в том, что при клике на кнопку фокус передастся ей. Но может кто-то сталкивался? Есть ли решение у этой задачи? Скрипт будет висеть в расширении.

Отсутствует

 

№219-01-2006 15:09:41

Infant
   «»
 
Группа: Extensions
Откуда: Одесса
Зарегистрирован: 23-12-2004
Сообщений: 3671

Re: Ввод текста в поле на котором фокус ввода.

Я так понимаю что простой ответ «Можно» тебе не подойдёт? Попробуй посмотреть как это организовано в расширении Nightly Tester Tools... Там есть кнопка для Панели навигации «Вставить ID сборки». Чем-то напоминает твоё желание...


Благодарю алфавит за любезно предоставленные буквы.

Отсутствует

 

№319-01-2006 15:46:50

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Ввод текста в поле на котором фокус ввода.

Что-то вроде этого:

Выделить код

Код:

var bluredEl = null;
function blurHandler (event)
{
    if (event. originalTarget. nodeName == "html:input") // или "textbox"
        bluredEl = event. originalTarget;
}
window. addEventListener ("blur", blurHandler, true);

+
<button oncommand="bluredEl.value='text';"/>


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№419-01-2006 16:16:14

Sarin2.0
Участник
 
Группа: Members
Зарегистрирован: 18-01-2006
Сообщений: 58

Re: Ввод текста в поле на котором фокус ввода.

Anton пишет

Что-то вроде этого:

Выделить код

Код:

var bluredEl = null;
function blurHandler (event)
{
    if (event. originalTarget. nodeName == "html:input") // или "textbox"
        bluredEl = event. originalTarget;
}
window. addEventListener ("blur", blurHandler, true);

+
<button oncommand="bluredEl.value='text';"/>

Не. Ваще ни разу. Только в GET дату добавляет txt= и перезагружает страницу:|

Отсутствует

 

№519-01-2006 16:23:28

Sarin2.0
Участник
 
Группа: Members
Зарегистрирован: 18-01-2006
Сообщений: 58

Re: Ввод текста в поле на котором фокус ввода.

Простите дурака молодого. Вроде получается. Осталось обстругать немного.

Отсутствует

 

№619-01-2006 18:33:15

Sarin2.0
Участник
 
Группа: Members
Зарегистрирован: 18-01-2006
Сообщений: 58

Re: Ввод текста в поле на котором фокус ввода.

Оказываеца текстареа не теряет фокус при передаче вокуса расширению. Так что хендлер надо перевесить на событие получения фокуса ввода. Это, ведь, onfocus? Или в данном контексте надо писать просто focus?

Отсутствует

 

№719-01-2006 18:45:12

Sarin2.0
Участник
 
Группа: Members
Зарегистрирован: 18-01-2006
Сообщений: 58

Re: Ввод текста в поле на котором фокус ввода.

focus и onfocus не помогли.
Как переписать вот это getBrowser().contentWindow.addEventListener("blur", blurHandler, true); чтоб повесилось на получение фокуса?

Отсутствует

 

№819-01-2006 23:58:09

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Ввод текста в поле на котором фокус ввода.

может быть, стоит обратить внимание на эту строку:

Выделить код

Код:

if (event. originalTarget. nodeName == "html:input")

?
Вместо originalTarget можно попробовать target, а вместо "html:input" - "html:textarea"...


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№920-01-2006 00:32:16

Sarin2.0
Участник
 
Группа: Members
Зарегистрирован: 18-01-2006
Сообщений: 58

Re: Ввод текста в поле на котором фокус ввода.

Anton пишет

может быть, стоит обратить внимание на эту строку:

Выделить код

Код:

if (event. originalTarget. nodeName == "html:input")

?
Вместо originalTarget можно попробовать target, а вместо "html:input" - "html:textarea"...

Спасибо. Я уже обратил на них внимание и переписал. И всё работает. Но нужно перевесить обработчик с потери фокуса на его получение.

Объясняю: я пишу расширение, которое поможет мне писать комменты и посты в http://livejournal.com
Там есть фишка для зарегестрированных юзеров. Когда пишешь комментарий к чужой записи, то форма для ввода коментария строится динамически. Узнать её id мне не удалось. Вот я и задумался над универсализацией.

Так вот чтоб всё работало надо сначала поставить фокус на текстарею для добавления коммента, а потом убрать. Иначе ничего не работает. Я пришёл к выводу, что событие потери фокуса не происходит когда после того, как я кликаю на кнопке из своего тулбара.

Замена blur на focus почему-то не помогла.

чем originalTarget отличается от target?

Отсутствует

 

№1020-01-2006 00:42:19

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Ввод текста в поле на котором фокус ввода.

Может следующий код из nightly tester поможет ?

Выделить код

Код:

var element = document.commandDispatcher.focusedElement;
if (element)
{
	var type = element.localName.toLowerCase();
	if ((type=="input")||(type=="textarea"))
	{
	   element. value = "...";

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]