X

Paste dữ liệu khi sử dụng noVNC Web Console

Nếu bạn nào từng sử dụng NoVNC rồi thì chắc hiểu khó khăn khi phải gõ từng dòng code hoặc mật khẩu đúng không, vì NoVNC console không thể paste clipboard lên được.

Hôm nay tôi sẽ chia sẻ cho các bạn 1 đoạn code javascript để có thể gửi cả đoạn code dài mà không cần gõ lại từ đầu đơn giản như sau

(function () {
    const XK_Shift_L = 65505; // https://docs.rs/x11-dl/1.0.1/x11_dl/keysym/constant.XK_Shift_L.html      
    window.sendString = function (str, pressOnly) {
        f(str.split(""));
        function f(t) {
            var character = t.shift();
            var i=[];
            var code = character.charCodeAt();
            var needs_shift = character.match(/[A-Z!@#$%^&*()_+{}:\"<>?~|]/);
            if (needs_shift) {
                rfb.sendKey(XK_Shift_L,1);
            }
            rfb.sendKey(code,1);
            !pressOnly && rfb.sendKey(code,0);
            if (needs_shift) {
                rfb.sendKey(XK_Shift_L,0);
            }
            
            if (t.length > 0) {
                setTimeout(function() {f(t);}, 10);
            }
        }
    }
})();