Вот функция тайм-аута, я думаю, что нашел через Google, и это работает на меня.
От: http://code.activestate.com/recipes/473878/
def timeout(func, args=(), kwargs={}, timeout_duration=1, default=None):
'''This function will spwan a thread and run the given function using the args, kwargs and
return the given default value if the timeout_duration is exceeded
'''
import threading
class InterruptableThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.result = default
def run(self):
try:
self.result = func(*args, **kwargs)
except:
self.result = default
it = InterruptableThread()
it.start()
it.join(timeout_duration)
if it.isAlive():
return it.result
else:
return it.result
Для этого можно использовать функцию charCodeAt
.
Рабочий пример:
function showKeyCode () {var character = document.getElementById ("character" ) .value.substring (0, 1); var code = document.getElementById ("символ"). value.charCodeAt (0); var msg = "Код клавиши для символа \" "+ +" \ ":" + code + "."; оповещение (сообщение); }
Что вы подразумеваете под "keyCode"? В разных браузерах разные значения keyCode
в событиях keyup
и keydown
, которые не обязательно будут соответствовать коду ASCII для соответствующего символа. Для буквенно-цифровых клавиш событие keypress
предоставит вам код ASCII в большинстве браузеров через charCode
или , которые имеют свойства
. Эта страница полезна.
Обновление, сентябрь 2015 г.
Как указал Ян в комментариях, keyCode
в конечном итоге будет заменен старшим ключом
свойство. Однако для этого пока нет большой поддержки браузерами.
Найдите таблицу кодов клавиш / ascii, например эта , и поместите ее в массив так, чтобы array ['char'] = keycode. Это утомительно, но код выполняется довольно быстро.