diff shterm.js @ 70:d7eb63cd7a16

Try to get some compatibility for keys. I'd thought using the DOM_VK_ names was a good idea. Symbolic names ought to be more portable than opaque numeric constants. Foolish me, expecting things to be sane. Keys now work with FF15 and Chrome 17.
author John "Elwin" Edwards <elwin@sdf.org>
date Thu, 21 Jun 2012 09:43:52 -0700
parents 7a50b4412fea
children a497ecd116d9
line wrap: on
line diff
--- a/shterm.js	Wed Jun 20 14:14:22 2012 -0700
+++ b/shterm.js	Thu Jun 21 09:43:52 2012 -0700
@@ -213,8 +213,8 @@
 function sendkey(ev) {
   var keynum = ev.keyCode;
   var code;
-  if (keynum >= ev.DOM_VK_A && keynum <= ev.DOM_VK_Z) {
-    /* Letters.  This assumes the codes are 65-90. */
+  if (keynum >= 65 && keynum <= 90) {
+    /* Letters. */
     if (ev.ctrlKey)
       keynum -= 64;
     else if (!ev.shiftKey)
@@ -223,7 +223,7 @@
     if (code.length < 2)
       code = "0" + code;
   }
-  else if (keynum >= ev.DOM_VK_0 && keynum <= ev.DOM_VK_9) {
+  else if (keynum >= 48 && keynum <= 57) {
     /* The number row. */
     if (ev.shiftKey) {
       code = numShifts[keynum - 48].toString(16);
@@ -238,8 +238,7 @@
     else
       code = keyHexCodes[keynum][0];
   }
-  else if (keynum == ev.DOM_VK_SHIFT || keynum == ev.DOM_VK_CONTROL ||
-           keynum == ev.DOM_VK_ALT || keynum == ev.DOM_VK_CAPS_LOCK) {
+  else if (keynum >= 16 && keynum <= 20) {
     return;
   }
   else {
@@ -298,7 +297,7 @@
   else
     return;
   //writeData("Sending " + keystr);
-  var formdata = {"t": "d", "n": nsend++, "d": code};
+  var formdata = {"t": "d", "n": nsend++, "d": keystr};
   var datareq = new XMLHttpRequest();
   datareq.onreadystatechange = postResponseHandler;
   datareq.open('POST', '/feed', true);