oimp
Version:
A CLI tool for generating OI problem and packages
28 lines • 1.15 kB
JavaScript
// 终端初始化
document.addEventListener('DOMContentLoaded', function () {
setTimeout(function () {
if (window.Terminal && window.FitAddon) {
let term = new Terminal({ fontSize: 14,theme:{background:"#1e1e1e"} });
let fitAddon = new window.FitAddon.FitAddon();
term.loadAddon(fitAddon);
term.open(document.getElementById('terminal'));
fitAddon.fit();
const ws = new WebSocket(`ws://${location.host}/api/terminal`);
ws.onmessage = e => {
term.write(e.data);
// 移除自动滚动留两行逻辑
};
term.onData(data => ws.send(data));
window.term = term;
window.fitAddon = fitAddon;
window.terminalWs = ws;
window.addEventListener('resize', function () {
if (fitAddon) fitAddon.fit();
});
// 给终端容器加底部 padding
document.getElementById('terminal').style.paddingBottom = '32px';
} else {
console.error('xterm.js or FitAddon not loaded');
}
}, 0);
});