LINUX.ORG.RU

Как получить состояние текстового поля.

 


0

1

Решил запилить скриптик для хрома, чтобы по нажатию на g появлялось текстовое поле, и выполнять команду из него. Проблема в том, что если я ввожу текст на веб-странице в какое-нибудь текстовое поле, мне не надо чтобы этот скрипт срабатывал (понятное дело почему: он не дает ввести текст в поле, выскакивает при каждом нажатии на g). Т.е. надо как то отловить событие, когда фокус находится на textarea, на input, и т.д. и блокировать. Можно было бы, конечно, блокировать вручную какой-нибудь клавишей, но хотелось бы, что бы он автоматически дезактивировался в случае, если какое-либо текстовое поле веб-страницы активно. Существует ли универсальный способ? Спасибо.

А просто проверять target события (его nodeName) не вариант?

Deleted
()

Пройтись по всем текстовым полям и повесить на них хандлер на DOMActivate? // первое пришедшее в голову, давно не щупал js.

x3al ★★★★★
()

Спасибо всем огромное. Решил пока, тупо:


textareas=document.getElementsByTagName("textarea")
inputs=document.getElementsByTagName("input")

flag=true;
for(i=0; i<textareas.length; i++){textareas[i].onfocus=function(){flag=false}; textareas[i].onblur=function(){flag=true}}
for(i=0; i<inputs.length; i++){inputs[i].onfocus=function(){flag=false}; inputs[i].onblur=function(){flag=true}}

Проверил на нескольких сайтах - вроде работает:)

anonimous
() автор топика

Внезапно, по этому заголовку автора не угадаешь xD

Про event target уже сказали.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, очень изящно. Сделал так, как Вы написали.

anonimous
() автор топика
Ответ на: комментарий от anonymous

Дать тебе туалетную бумагу моего авторства, сукин сын?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.