const socketProtocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const socketUrl = `${socketProtocol}//${window.location.host}`; const socket = new WebSocket(socketUrl); socket.onmessage = (event) => { term.write(event.data); } var term = new window.Terminal({ cursorBlink: true }); term.open(document.getElementById('terminal')); function init() { if (term._initialized) { return; } term._initialized = true; term.prompt = () => { runCommand('\n'); }; setTimeout(() => { term.prompt(); }, 300); term.onKey(keyObj => { runCommand(keyObj.key); }); term.attachCustomKeyEventHandler((e) => { if ((e.ctrlKey || e.metaKey) && e.key === 'v') { navigator.clipboard.readText().then(text => { runCommand(text); }); return false; } return true; }); } function runCommand(command) { socket.send(command); } init();