Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Горячие клавиши, беру из базы 
V
    Опции темы
Siqwirit
Дата 20.1.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 23.12.2006

Репутация: нет
Всего: нет



Привет всем.
Хочу сделать горячие клавиши на форуме, что бы каждый пользователь настраивал их "под" себя.
Беру из базы определенную клавишу
Код

echo '<script type="text/javascript">';
echo 'var gk_general="'.$row['key'].'";';
echo '</script>';

А вот дальше не получается. Пытался сделать так:
Код

HotKeyHandler.keys = {
 gk_general:function(){window.location='index.php?';},
};

Не работает. Может кто-нибудь подскажет как сделать правильно...
PM MAIL   Вверх
Wolf1994
Дата 20.1.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 4
Всего: 29



Захват клавиш: http://www.programmingtalk.com/showthread.php?t=35126 - возможно, поможет
PM MAIL WWW   Вверх
Sardar
Дата 20.1.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



HotKeyHandler работает с кодами клавиш, где ctrl обязателен. Shift проверяется по регистру, т.е:
Код
HotKeyHandler.keys = {
   'a': function() { alert("ctrl+a"); },
   'A': some_shared_action
};
function some_shared_action() { alert("ctrl+shift+a"); }

Хотелось как можно проще, так и вышло. Сейчас ещё Girder добавил проверку на alt комбинацию.

Вот свой $row['key'] ты и должен сгенерить в .keys, который по идее для каждого юзера должен быть своим. Для этого общий код выложи в общий .js, а ключи для генери для каждого.

P.S. регистрируй обработчик на окне (тоже) если хочешь что бы в ИЕ дефолтное действие не отрабатывало. Вот сейчас на форуме под ИЕ горячие не отрубают дефолтное, т.к. обработчик на текстовом поле. Все забили, т.к. большинство на ФФ или на Опере smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Siqwirit
Дата 21.1.2007, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 23.12.2006

Репутация: нет
Всего: нет



возможно вы меня не так поняли (или я вас)...
Код

'a': function() { alert("ctrl+a"); },

здесь событие определяеться по нажатию Ctrl+a. Мне нужно чтобы вот эта "а" бралась из переменной. Т.е. возможно ли сделать что-то вроде 
Код

'имя_переменной': function() { alert("ctrl+a"); },


PM MAIL   Вверх
Sardar
Дата 21.1.2007, 03:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Siqwirit, повторяю, вязать HotKeyHandler на переменные есть бред, подход к личным настройкам иначе. Вместо генерации переменной лучше положи все общие обработчики клавиш в отдельный общий файл, а ассоциативный .keys генери для каждого уникальный.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Siqwirit
Дата 22.1.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 23.12.2006

Репутация: нет
Всего: нет



Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.