Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Небольшой скрипт, для привязки к клавишам.
Форумы портала PHP.SU » » Хранилище функций на JavaScript » Небольшой скрипт, для привязки к клавишам.

Страниц (1): [1]
 

1. -SCHATTEN- - 08 Апреля, 2007 - 12:53:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>Untitled Document</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  6. <script language="javascript">
  7. <!--
  8. function keyAction(e)
  9. {
  10.     if (e.shiftKey || e.altKey || !e.ctrlKey) return;  // Если нажаты клавиши Shift, Alt или
  11.                                                                        // не нажата клавиша Ctrl, функция      
  12.                                                                        // неработает  
  13.     switch (e.keyCode)
  14.     {
  15.         case 66:
  16.             text = "|Ctrl+B|";  // Выводим текст |Ctrl+B| если нажать Ctrl+B
  17.             break;
  18.         case 85:
  19.             text = "|Ctrl+U|"; // Аналогично Ctrl+B
  20.             break;
  21.         case 13:
  22.                     window.open('1.php');  // Открываем скрипт 1.php если нажать Ctrl+Enter
  23.                         break;
  24.                 //следующие case
  25.     }
  26.  if (text)
  27.     {
  28.         textarea.value += text;
  29.         e.preventDefault();
  30.     }
  31. }
  32.  
  33. function keyPressInit()
  34. {
  35.     // Функция определяющая находится ли курсор в текстовом поле.
  36.     // если нет то скрипт не работает
  37.     textarea = document.getElementById("enabledTextArea");
  38.     if (!textarea) return;
  39.     textarea.onfocus = function(){enabled=true;}
  40.     textarea.onblur = function(){enabled=false;}
  41.     document.onkeypress = function(e){keyAction(e);}
  42. }
  43.  
  44. var textarea, enabled;
  45. window.onload = keyPressInit;    
  46.  
  47.  
  48. //-->
  49. </script>
  50. </head>
  51.  
  52. <body onkeypress="keyAction(e);">
  53. <form>    
  54.      <textarea id="enabledTextArea">
  55.         CTRL+B || CTRL+U
  56.     </textarea>
  57.     <textarea>
  58.         !(CTRL+B || CTRL+U)
  59.     </textarea>
  60. </form>
  61.  
  62. </body>
  63. </html>


Обьясню в 2-х словах принцип :
Если курсор находится в текстовом поле то при нажатии кнопок |Ctrl+B| |Ctrl+U|Ctrl+Enter выполняются различные события.

Сами события описаны после строк case *:.

Case это код нажатой клавиши на клавиатуре.

Исправляем, отцениваем.
2. Dastar - 02 Января, 2008 - 18:14:43 - перейти к сообщению
Если убрать функцию "keyPressInit", то функция будет работать в любом месте странички?
3. scuter - 17 Февраля, 2008 - 05:38:47 - перейти к сообщению
интересно а где достать данные по стальным клавишам быстрого набора?

 

Powered by ExBB FM 1.0 RC1