Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.07.2012, 19:00
Профессор
Отправить личное сообщение для Александр х@к Посмотреть профиль Найти все сообщения от Александр х@к
 
Регистрация: 24.08.2011
Сообщений: 159

События клавиатуры.
Здравствуйте,
На сайте перечитывал учебник, статья: события клавиатуры.
Из исходника вытащил код)
Вот он:
<!DOCTYPE HTML>
<html>
  <head> 
    <title>События клавиатуры</title></head>
  <body>
      Предотвратить действие по умолчанию для:<label><input type="checkbox" value="1" name="keydownStop"/> keydown</label>   <label><input type="checkbox" value="1" name="keypressStop"/> keypress</label>   <label><input type="checkbox" value="1" name="keyupStop"/> keyup</label><br/>
        Игнорировать:<label><input type="checkbox" value="1" name="keydownIgnore"/> keydown</label>   <label><input type="checkbox" value="1" name="keypressIgnore"/> keypress</label>   <label><input type="checkbox" value="1" name="keyupIgnore"/> keyup</label><br/>

Сфокусируйтесь на поле и нажмите какую-нибудь клавишу.<br/>
<input type="text" id="kinput" placeholder="Поле для тестов" style="font-size: 150%; width: 400px;"/><br/>
Журнал:<br/>
 <textarea style="width: 402px; border: 1px solid black; height: 303px;" rows="18"/>
 <input type="button" onclick="logClear('key')" value="Очистить"/></p>

   
 <script>
$(function() {
document.getElementById('kinput').onkeydown = khandle
document.getElementById('kinput').onkeyup = khandle
document.getElementById('kinput').onkeypress = khandle
})

function khandle(e) {
debugger
  e = e || event
  if (document.forms.keyform[e.type + 'Ignore'].checked) return
   
  var evt = e.type
  while (evt.length < 10) evt += ' '
  showmesg(evt + 
    ' keyCode=' + e.keyCode + 
    ' which=' + e.which + 
    ' charCode=' + e.charCode +
    ' char=' + String.fromCharCode(e.keyCode || e.charCode) +
    (e.shiftKey ? ' +shift' : '') +
    (e.ctrlKey ? ' +ctrl' : '') +
    (e.altKey ? ' +alt' : '') +
    (e.metaKey ? ' +meta' : ''), 'key'
  )
  
  if (document.forms.keyform[e.type + 'Stop'].checked) {
    e.preventDefault ? e.preventDefault() : (e.returnValue = false)
  }
}
</script>
<style>
.key {
  border: 1px solid black;
  padding: 0 1px;
  display: inline-block;
  margin: 1px 0;
}
</style>
</head>

   
  </body>
</html>


Всё хорошо(почти), первая часть(по слово "Журнал" всё идет прекрасно),
но яваскрипт не хочет работать, ну как не хочет он записал себя в журнал.
Если не понятно выполните этот код и всё станет понятно.
Как всё сделать норм?
Чувствую части кода нет))
Ответить с цитированием
  #2 (permalink)  
Старый 08.07.2012, 19:09
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Александр х@к Посмотреть сообщение
Здравствуйте,
На сайте перечитывал учебник, статья: события клавиатуры.
Из исходника вытащил код)
Вот он:
<!DOCTYPE HTML>
<html>
  <head> 
    <title>События клавиатуры</title></head>
  <body>
      Предотвратить действие по умолчанию для:<label><input type="checkbox" value="1" name="keydownStop"/> keydown</label>   <label><input type="checkbox" value="1" name="keypressStop"/> keypress</label>   <label><input type="checkbox" value="1" name="keyupStop"/> keyup</label><br/>
        Игнорировать:<label><input type="checkbox" value="1" name="keydownIgnore"/> keydown</label>   <label><input type="checkbox" value="1" name="keypressIgnore"/> keypress</label>   <label><input type="checkbox" value="1" name="keyupIgnore"/> keyup</label><br/>

Сфокусируйтесь на поле и нажмите какую-нибудь клавишу.<br/>
<input type="text" id="kinput" placeholder="Поле для тестов" style="font-size: 150%; width: 400px;"/><br/>
Журнал:<br/>
 <textarea style="width: 402px; border: 1px solid black; height: 303px;" rows="18"/>
 <input type="button" onclick="logClear('key')" value="Очистить"/></p>

   
 <script>
$(function() {
document.getElementById('kinput').onkeydown = khandle
document.getElementById('kinput').onkeyup = khandle
document.getElementById('kinput').onkeypress = khandle
})

function khandle(e) {
debugger
  e = e || event
  if (document.forms.keyform[e.type + 'Ignore'].checked) return
   
  var evt = e.type
  while (evt.length < 10) evt += ' '
  showmesg(evt + 
    ' keyCode=' + e.keyCode + 
    ' which=' + e.which + 
    ' charCode=' + e.charCode +
    ' char=' + String.fromCharCode(e.keyCode || e.charCode) +
    (e.shiftKey ? ' +shift' : '') +
    (e.ctrlKey ? ' +ctrl' : '') +
    (e.altKey ? ' +alt' : '') +
    (e.metaKey ? ' +meta' : ''), 'key'
  )
  
  if (document.forms.keyform[e.type + 'Stop'].checked) {
    e.preventDefault ? e.preventDefault() : (e.returnValue = false)
  }
}
</script>
<style>
.key {
  border: 1px solid black;
  padding: 0 1px;
  display: inline-block;
  margin: 1px 0;
}
</style>
</head>

   
  </body>
</html>


Всё хорошо(почти), первая часть(по слово "Журнал" всё идет прекрасно),
но яваскрипт не хочет работать, ну как не хочет он записал себя в журнал.
Если не понятно выполните этот код и всё станет понятно.
Как всё сделать норм?
Чувствую части кода нет))
тег <textarea> имеет и закрывающий) </textarea>, а у вас его нет)
да и функции logClear() не хватает, которая находится в прикрепляемом файле на 48строке
<script src="/files/tutorial/browser/events/log.js"></script>

Последний раз редактировалось lord2kim, 08.07.2012 в 19:28.
Ответить с цитированием
  #3 (permalink)  
Старый 08.07.2012, 21:04
Профессор
Отправить личное сообщение для Александр х@к Посмотреть профиль Найти все сообщения от Александр х@к
 
Регистрация: 24.08.2011
Сообщений: 159

я уже писал Половина кода преобразовуется, другая - нет
и исходники смотрел
Ответить с цитированием
  #4 (permalink)  
Старый 08.07.2012, 22:22
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Александр х@к Посмотреть сообщение
я уже писал Половина кода преобразовуется, другая - нет
и исходники смотрел
ну так вторая половина попадает в textarea, т.к. этот тег должен иметь закрывающийся, а у вас таковой отсутствует...
Ответить с цитированием
  #5 (permalink)  
Старый 08.07.2012, 22:44
Профессор
Отправить личное сообщение для Александр х@к Посмотреть профиль Найти все сообщения от Александр х@к
 
Регистрация: 24.08.2011
Сообщений: 159

Изменил код, но эффекта события клавы НЕТ(
<!DOCTYPE HTML>
<html>
  <head>
    <title>События клавиатуры</title></head>
  <body>
      Предотвратить действие по умолчанию для:<label><input type="checkbox" value="1" name="keydownStop"/> keydown</label>   <label><input type="checkbox" value="1" name="keypressStop"/> keypress</label>   <label><input type="checkbox" value="1" name="keyupStop"/> keyup</label><br/>
        Игнорировать:<label><input type="checkbox" value="1" name="keydownIgnore"/> keydown</label>   <label><input type="checkbox" value="1" name="keypressIgnore"/> keypress</label>   <label><input type="checkbox" value="1" name="keyupIgnore"/> keyup</label><br/>
 
Сфокусируйтесь на поле и нажмите какую-нибудь клавишу.<br/>
<input type="text" id="kinput" placeholder="Поле для тестов" style="font-size: 150%; width: 400px;"/><br/>
Журнал:<br/>
 <textarea style="width: 402px; border: 1px solid black; height: 303px;" rows="18"/></textarea>
 <input type="button" onclick="logClear('key')" value="Очистить"/></p>
 
    
 <script>
$(function() {
document.getElementById('kinput').onkeydown = khandle
document.getElementById('kinput').onkeyup = khandle
document.getElementById('kinput').onkeypress = khandle
})
 
function khandle(e) {
debugger
  e = e || event
  if (document.forms.keyform[e.type + 'Ignore'].checked) return
    
  var evt = e.type
  while (evt.length < 10) evt += ' '
  showmesg(evt +
    ' keyCode=' + e.keyCode +
    ' which=' + e.which +
    ' charCode=' + e.charCode +
    ' char=' + String.fromCharCode(e.keyCode || e.charCode) +
    (e.shiftKey ? ' +shift' : '') +
    (e.ctrlKey ? ' +ctrl' : '') +
    (e.altKey ? ' +alt' : '') +
    (e.metaKey ? ' +meta' : ''), 'key'
  )
   
  if (document.forms.keyform[e.type + 'Stop'].checked) {
    e.preventDefault ? e.preventDefault() : (e.returnValue = false)
  }
}
</script>
<style>
.key {
  border: 1px solid black;
  padding: 0 1px;
  display: inline-block;
  margin: 1px 0;
}
</style>
</head>
 
    
  </body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 08.07.2012, 23:09
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Александр х@к Посмотреть сообщение
Изменил код, но эффекта события клавы НЕТ(
во вложениях или здесь можете слить архив с этой страницей...у вас много подключаемых ко странице дополнительных .js-файлов не хватает для полного запуска
с остальными файлами (.css, .js) сами разберетесь, что лишное, что нет

Последний раз редактировалось lord2kim, 10.07.2012 в 16:41.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмуляция события клавиатуры (Opera) Shabol Events/DOM/Window 3 10.12.2014 23:03
Дебаг js, или как найти обработчик события для тега jimm88 Events/DOM/Window 1 18.04.2012 15:11
Как сделать чтобы клавиатурные события пропускались сквозь флешку? khusamov Общие вопросы Javascript 3 11.02.2012 16:48
События по нажатию на клавиши клавиатуры Kaba jQuery 2 07.12.2011 02:47
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54