guacamole实现剪切复制
主要功能是实现把堡垒机的内容复制到浏览器端,把浏览器端的文本复制到堡垒机上。
借助一个中间的文本框,现将堡垒机内容复制到一个文本框,然后把文本框内容复制出来。或者将需要传递到堡垒机的内容先复制到文本框,然后在传递到堡垒机上。
//监听堡垒机端往剪切板复制事件,然后写入文本框中
client.onclipboard = function(stream, mimetype){
if (/^text\//.exec(mimetype)) {
var stringReader = new Guacamole.StringReader(stream);
var json = "";
stringReader.ontext = function ontext(text) {
json += text
}
stringReader.onend = function() {
var clipboardElement = document.getElementById("clipboard");
clipboardElement.value = '';
clipboardElement.value = json;
}
}
}
//将内容传送到往堡垒机,data是获取到的文本框中的内容
function setClipboard(data) {
var stream = client.createClipboardStream("text/plain");
var writer = new Guacamole.StringWriter(stream);
for (var i=0; i<data.length; i += 4096){
writer.sendText(data.substring(i, i+4096));
}
writer.sendEnd();
}