This page was last modified 17:54, 12 November 2007.
Manipulando eventos de teclado em widgets
From Forum Nokia Wiki
Compatibilidade: Web Run-Time em S60 3rd Edition, Feature Pack 2
Contents |
Diferenças entre browsers
Em geral, browsers diferem na maneira em que disponibilizam eventos de teclado no nível JavaScript. Widgets WRT para S60 por exemplo não oferecem todos os eventos de teclado encontrados em outros browsers em campos de texto e componentes input.
APIs específicas de widgets S60 WRT
S60 WRT API
widget.setNavigationEnabled(false);
desabilita o modo de navegação e permite ao código JavaScript coletar também eventos de tecla do cursor.
Exemplo
O exemplo seguinte mostra como explorar diferentes eventos de teclado (e seus códigos) em widgets:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript">
/*
* attach key listeners
*/
document.onkeypress = keyPress;
document.onkeyup = keyUp;
document.onkeydown = keyDown;
/*
* disable cursor navigation - otherwise cursor
* key events are not received by keypress callbacks
*/
widget.setNavigationEnabled(false);
/*
* show keyCode and charCode.
*/
function keyPress(event) {
document.getElementById('keypressField').innerHTML = event.keyCode + " / " + event.charCode;
}
function keyDown(event) {
document.getElementById('keydownField').innerHTML = event.keyCode + " / " + event.charCode;
}
function keyUp(event) {
document.getElementById('keyupField').innerHTML = event.keyCode + " / " + event.charCode;
}
</script>
</head>
<body>
keyCode / charCode:
<div>
KeyPress:
<div id="keypressField"></div>
</div>
<div>
Keydown:
<div id="keydownField"></div>
</div>
<div>
Keyup:
<div id="keyupField"></div>
</div>
</body>
</html>
Tabela de key codes e char codes
Para referência, aqui estão os valores coletados pela aplicação de teste. O formato é como está no exemplo: event.keyCode / event.charCode.
| key | keyPress | keyDown | Keyup |
| 0 | 48/48 | 48/48 | 48/48 |
| 1 | 49/49 | 49/49 | 49/49 |
| 2 | 50/50 | 50/50 | 50/50 |
| 3 | 51/51 | 51/51 | 51/51 |
| 4 | 52/52 | 52/52 | 52/52 |
| 5 | 53/53 | 53/53 | 53/53 |
| 6 | 54/54 | 54/54 | 54/54 |
| 7 | 55/55 | 55/55 | 55/55 |
| 8 | 56/56 | 56/56 | 56/56 |
| 9 | 57/57 | 57/57 | 57/57 |
| green | 63586/63586 | 0/63586 | 0/63586 |
| center | 63557/63557 | 0/63557 | [n/a]/[n/a] |
| up | 63497/63497 | 38/63497 | [n/a]/[n/a] |
| down | 63498/63498 | 40/63498 | [n/a]/[n/a] |
| left | 63495/63495 | 37/63495 | [n/a]/[n/a] |
| right | 63496/63496 | 39/63496 | [n/a]/[n/a] |
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Best IDE and langauge for N95 and webservices | Keb | General Discussion | 5 | 2008-07-08 18:13 |
| Display a web page in a mobile app | julierico | Python | 1 | 2008-04-28 04:50 |
| Welcome to the WidSets Developer discussion board! | marko.lumivuori@nokia.com | WidSets Development | 0 | 2008-06-13 01:05 |
| Maemo: Unable to run applets | wirefree101 | WRT Widget Development | 2 | 2008-05-15 07:27 |
| Dynamic Data in LBS: Talk to the Guru | kevin_s2f | Location Based Services and Navigation | 29 | 2008-05-30 15:47 |
