File size: 993 Bytes
56e2bf6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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(); |