| <p>To test manually, press keys and compare results to other browsers.</p> |
| <input type="button" value="Input" |
| onclick="log(eventInfo(event));" |
| onmousedown="log(eventInfo(event));" |
| onmouseup="log(eventInfo(event));" |
| onkeypress="log(eventInfo(event));" |
| onkeydown="log(eventInfo(event));" |
| onkeyup="log(eventInfo(event));"> |
| </input> |
| <div id="log"></div> |
| |
| <script> |
| function log(msg) { |
| document.getElementById("log").innerHTML+= msg + "<br />"; |
| } |
| function eventInfo(event, where) { |
| try { |
| if (!event) |
| event = window.event; |
| target = event.srcElement ? event.srcElement : event.target; |
| if (event.type == "textInput") |
| return (where ? "(" + where + ") " : "") + target.tagName + " - " + event.type + " - " + event.data; |
| else if (event.type == "keydown" || event.type == "keypress" || event.type == "keyup") |
| return (where ? "(" + where + ") " : "") + target.tagName + " - " + event.type |
| + ' - ' + [event.ctrlKey, event.altKey, event.shiftKey, event.metaKey] |
| + ' - ' + event.key |
| + ' - ' + event.code |
| + ' - ' + event.keyIdentifier |
| + ' - ' + event.keyCode |
| + ' - ' + event.charCode |
| + ' - ' + event.which; |
| else if (event.type == "mousedown" || event.type == "click" || event.type == "mouseup") |
| return (where ? "(" + where + ") " : "") + target.tagName + " - " + event.type; |
| |
| } catch (ex) { |
| alert(ex); |
| } |
| } |
| log("target - type - " + ["ctrlKey", "altKey", "shiftKey", "metaKey"] |
| + ' - ' + "key" |
| + ' - ' + "code" |
| + ' - ' + "keyIdentifier" |
| + ' - ' + "keyCode" |
| + ' - ' + "charCode" |
| + ' - ' + "which"); |
| |
| if (document.getElementsByTagName("input")[0].addEventListener) |
| document.getElementsByTagName("input")[0].addEventListener('textInput', function(e) {log(eventInfo(e));}, false); |
| |
| document.getElementsByTagName("input")[0].focus(); |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| log("Space:"); |
| eventSender.keyDown(" ", []); |
| log("Enter:"); |
| eventSender.keyDown("\r", []); |
| log("A:"); |
| eventSender.keyDown("A", []); |
| } |
| </script> |