| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Перехват нажатия клавиш |
| Автор: Frazelli 30.6.2009, 09:11 | ||
| Здравствуйте. Помогите пожалуйста разобраться. Прикрутил скрипт к FireFox через Greasemonkey. Нужно чтобы этот скрипт отслеживал нажатия клавишь в FF и по нажатию определенных клавиш делал какие-то действия.
Написал функцию, но ничего не работает. Может чего-то не хватает? |
| Автор: Samotnik 30.6.2009, 09:45 | ||
Для начала разберитесь с этим
а потом изучить http://web-mastering.net/internet/39.shtml |
| Автор: Frazelli 30.6.2009, 10:08 |
| С этим все понятно. Но как сделать чтобы этот код работал в файле .js? Нужно прикрутить скрипт к браузеру. |
| Автор: Samotnik 30.6.2009, 11:06 | ||
очень просто пропиши в хидере html страницы свой ЖС файл
|
| Автор: Frazelli 30.6.2009, 11:12 | ||||
Этот код в js файле работать не будет.
И я не могу в хидере прописать это. Надо чтобы скрипт запускался на определенных сайтах. |
| Автор: Frazelli 30.6.2009, 12:10 | ||||
Не работает этот код в js файле. Не хватает чего-то..
создаю файл js с этим кодом:
Захожу на сайт на котором я хочу чтобы этот скрипт работал. Если в опере: нажимаю правой кнопкой мыши > изменить настройки сайта > сценарии > файлы пользователя JavaScript. И включаю свои скрипты. В FF немного подругому.. И не работает этот скрипт. |
| Автор: Samotnik 30.6.2009, 13:11 |
конечно не работает, нужно ведь на какое - то событие поставить этот скрипт на onload можно, либо на конкретный элемент на onClick |
| Автор: Frazelli 30.6.2009, 13:17 |
| А на какое событие можно поставить? нужно чтобы всегда на этом сайте при нажатии клавиши делалось какое-то действие. |
| Автор: Samotnik 30.6.2009, 14:40 | ||
http://www.w3schools.com/jsref/jsref_onload.asp |
| Автор: Frazelli 30.6.2009, 14:56 | ||||
Можно поподробней пожалуйста? сделал событие onLoad
срабатывает только кода страница обновляется, на нажатие клавишь не реагирует. |
| Автор: bars80080 30.6.2009, 15:17 | ||
| эх, Frazelli, вам серьёзно надо взять книжку по javascript и почитать её. это ведь совсем не сложно а так вы будете спотыкаться на каждом шагу очень долго
надеюсь не нужно указывать куда это вставлять? |
| Автор: Frazelli 30.6.2009, 15:32 | ||||||
мне только сегодня пришлось столкнутсья с JavaScript.
это для файла html. мне надо для js вот что получилось. myscript.js
Не работает это в js файле и не будет работать. Надо реализовать это в js файле, а не html |
| Автор: bars80080 30.6.2009, 15:51 | ||
в js-файле:
|
| Автор: Frazelli 30.6.2009, 16:00 | ||||
я так уже делал.
|
| Автор: bars80080 30.6.2009, 19:33 |
| для вас, что и одно и тоже? зрительно даже вторая строка длинее, как здесь не уловить разницу? |
| Автор: Frazelli 30.6.2009, 19:40 | ||
работает одинакво. точнее не работают оба варианта. зрительно отличается, а програмно нет. |
| Автор: bars80080 30.6.2009, 20:43 |
| программно это совершенно разные вещи. первое - присвоение событию значение переменной (что само по себе бредово). во втором случае - назначение событию обработчика у вас логика скорее всего хромает вот, к примеру, зачем по загрузке окна выводить сообщение? да ещё и с неизвестным событием? /кстати, если событие отсутствует может быть ошибка. / ошибки какие-нибудь пишет? |
| Автор: Frazelli 1.7.2009, 07:51 | ||||||
Оба эти варианта вызывают сообщение при загрузке страницы и всё! разницы между ними я не вижу.
Мне нужен скрипт который на определенном сайте всегда будет отслеживать нажатия клавиш. И по нажатию заданной клавиши должно выполнятся действие (действие задается в условии, если нажата такая-то клавиша, то сделать такое-то действие)
Нет, ошибок не пишет. Просто по нажатию клавиш ничего не происходит. |
| Автор: fidres 4.7.2009, 10:14 | ||
| ну, блин, собрались знатоки!.. и давай клевать... не понимает человек! ну что ж это, грех?! книжки... сами-то много книжек читали по молодости?.. у меня вот тоже та же проблема... не могу в ФФ прикрутить событие по нажатию клавиш... и ничего в этом зазорного. если б все могли объяснить, а не издеваться - толку, глядишь, больше бы было. сейчас столько всего развелось, что даже в осле, порой, не всё припомнишь!.. а если это всё ещё домовской моделью перебодяжить - так и подавно ум сломаешь!.. Frazelli, в Вашей ситуации нажатие любой кнопки (событие) нужно присваивать какому-нибудь объекту ВНУТРИ документа (я прикручиваю это событие к объекту BODY. как Вам, впрочем, и посоветовали... только немного неумело).
для меня же проблема состоит несколько в другом... хотя... стоит ли спрашивать здесь, где только и могут, что осмеять... |
| Автор: fidres 4.7.2009, 10:30 | ||||
| кстати сказать. последовательность выполнения в моём случае: загрузка документа (html) загрузка заголовка (head) загрузка в память скрипта для последующего исполнения (при вызове) замена onkeydown своей функцией загрузка тела документа ожидание события onkeydown это что касается логики. что касается логики < BODY onLoad="функция и подобного (в приведённых ранее примерах): загрузка документа (html) загрузка тела документа присвоение функции событию onLoad выполнение скрипта (с неопределённым значением event, т.к. onLoad ещё не произошло - страница ТОЛЬКО-ЛИШЬ ГРУЗИТСЯ!!!) окончание загрузки тела документа (страницы для отображения) {с кучей ошибок в памяти процесса} знание новомодных примочек для программежа - не спасает от тупости носителей оных знаний! (пожалуй, это закон) Добавлено @ 10:40 нужен ли пример с подгрузкой скрипта из внешнего файла .JS? обзываем этот файл a.js (заметьте, что некоторые системы хостеров работают на платформах *NIX, где регистр букв имеет значение!)
логику объяснить? |
| Автор: fidres 5.7.2009, 04:01 |
| кстати. поискал тут на досуге... http://www.javascriptkit.com/domref/domevent.shtml http://mynsa04.blogspot.com/2007/11/blog-post_21.html http://xpoint.ru/forums/programming/javascript/crossbrowser/thread/41573.xhtml http://forum.codenet.ru/showthread.php?t=35893 http://forum.vingrad.ru/forum/topic-149225/0.html |
| Автор: ksfinks 8.11.2009, 20:53 | ||
В firefox можно установить add-on greasemonkey (https://addons.mozilla.org/ru/firefox/addon/748) и установить в нем такой скрипт:
В результате при нажатии Alt + G будет выполняться нужный код |