]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/web-server/examples/018-web-shell.js
Add 'packages/web-server/' from commit 'd0b6ae9df6014db2195da0081dc97cc8246f1fda'
[gnu-emacs-elpa] / packages / web-server / examples / 018-web-shell.js
diff --git a/packages/web-server/examples/018-web-shell.js b/packages/web-server/examples/018-web-shell.js
new file mode 100644 (file)
index 0000000..295ff7c
--- /dev/null
@@ -0,0 +1,22 @@
+var ws;
+
+function write(data){
+  var before = document.getElementById("buffer").innerHTML;
+  document.getElementById("buffer").innerHTML = before + data;
+  window.scrollTo(0,document.body.scrollHeight); }
+
+function read(){
+  var tmp = document.getElementById("mini-buffer").value;
+  document.getElementById("mini-buffer").value = "";
+  write(tmp + "\n");
+  return tmp; }
+
+function connect(){
+  ws = new WebSocket("ws://localhost:%d/");
+  ws.onopen    = function()    { write("<p><i>connected</i></p>"); };
+  ws.onmessage = function(msg) { write(msg.data); };
+  ws.onclose   = function()    { write("<p><i>closed</i></p>"); }; }
+
+window.onload = function(){
+  document.getElementById("mini-buffer").addEventListener(
+    "keyup", function(e){ if(e.keyCode == 13){ ws.send(read()); } }); }