Created
April 30, 2023 21:31
-
-
Save tempusthales/bf4d952939d3b4ddb694085350cf8fc8 to your computer and use it in GitHub Desktop.
Script derived from https://gist.github.com/amunchet/4cfaf0274f3d238946f9f8f94fa9ee02 but with support of Firefox
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name noVNC Paste for Proxmox (Firefox) | |
// @namespace http://tampermonkey.net/ | |
// @version 0.2a | |
// @description Pastes text into a noVNC window (for use with Proxmox specifically) on Firefox Browsers | |
// @author Tempus Thales | |
// @match https://* | |
// @include /^.*novnc.*/ | |
// @require http://code.jquery.com/jquery-3.3.1.min.js | |
// @grant none | |
// ==/UserScript== | |
const delay = 1 | |
;(function () { | |
'use strict' | |
window.sendString = function(text) { | |
var el = document.getElementById("canvas-id") | |
text.split("").forEach(x=>{ | |
setTimeout(()=>{ | |
var needs_shift = x.match(/[A-Z!@#$%^&*()_+{}:\"<>?~|]/) | |
let evt | |
if (needs_shift) { | |
evt = new KeyboardEvent("keydown", {keyCode: 16}) | |
el.dispatchEvent(evt) | |
evt = new KeyboardEvent("keydown", {key: x, shiftKey: true}) | |
el.dispatchEvent(evt) | |
evt = new KeyboardEvent("keyup", {keyCode: 16}) | |
el.dispatchEvent(evt) | |
}else{ | |
evt = new KeyboardEvent("keydown", {key: x}) | |
} | |
el.dispatchEvent(evt) | |
}, delay) | |
}) | |
} | |
$(document).ready(function() { | |
setTimeout(()=>{ | |
console.log("Starting up noVNC Copy/Paste (for Proxmox)") | |
$("canvas").attr("id", "canvas-id") | |
$("canvas").on("mousedown", (e)=>{ | |
if(e.button == 2){ // Right Click | |
navigator.clipboardRead().then(text =>{ | |
// navigator.clipboard.readText().then(text =>{ | |
window.sendString(text) | |
}) | |
} | |
}) | |
}, 1000); | |
}) | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment