Javascript 获取剪贴板数据
我正在尝试编写一个Javascript函数,在粘贴之前编辑剪贴板中的内容。现在我通过JQuery将绑定事件“粘贴”到函数中Javascript 获取剪贴板数据,javascript,jquery,clipboard,http-get,Javascript,Jquery,Clipboard,Http Get,我正在尝试编写一个Javascript函数,在粘贴之前编辑剪贴板中的内容。现在我通过JQuery将绑定事件“粘贴”到函数中 $(this.elementDoc).bind('paste', function(event){ self.OnPaste(event); }); 但这并不重要。现在我想从剪贴板中获取数据,但我不知道如何获取。我很高兴得到每一个提示。这是一个强者。如果我没记错的话,IE允许访问剪贴板,但默认情况下Firefox不允许,因为存在安全问题。我不得不为一个正在进行的项目
$(this.elementDoc).bind('paste', function(event){
self.OnPaste(event);
});
但这并不重要。现在我想从剪贴板中获取数据,但我不知道如何获取。我很高兴得到每一个提示。这是一个强者。如果我没记错的话,IE允许访问剪贴板,但默认情况下Firefox不允许,因为存在安全问题。我不得不为一个正在进行的项目这样做,并被迫使用一个小的SWF文件进行复制
以下是如何从IE或Chrome中获取它。首先,它阻止实际粘贴的发生,然后进行功能检查,然后将变量文本设置为剪贴板文本。这样,您就可以操纵文本,然后将其设置为粘贴到的输入/元素的值,或者您想对其执行的任何操作
//get clipboard text
event.preventDefault();
var text = null;
if (window.clipboardData)
text = window.clipboardData.getData("Text");
else if (event.originalEvent && event.originalEvent.clipboardData)
text = event.originalEvent.clipboardData.getData("Text");
//manipulate the text
text = '..do stuff with it..';
//set the text
$(this).val(text);
clipboardData
可以包含各种潜在格式的数据。程序可能会以多种格式添加剪贴板数据。要查看格式,请查看剪贴簿数据.types
剪贴板数据通常包含纯文本,types
中列出的第一种类型将是MIME类型“text/plain”。如果您从浏览器tho复制文本,您将在列表中看到两种类型:“text/plain”和“text/html”。根据传递到getData
中的字符串,可以获取纯文本或html。似乎“text”是“text/plain”的缩写,“url”是“text/uri列表”的缩写
有关如何使用
clipboardData.getData
的更多信息,请参阅 据我所知,此解决方案允许复制到剪贴板,但不允许从剪贴板获取。因此,这根本不是所提出问题的解决方案——我不知道为什么它被标记为这样(除非OP被混淆)。如果我错了,请解释!添加了一堆解释
element.addEventListener('paste', function(event) {
var cb = event.clipboardData
if(cb.types.indexOf("text/html") != -1) { // contains html
var pastedContent = cb.getData("text/html")
} else if(cb.types.indexOf("text/html") != -1) { // contains text
var pastedContent = cb.getData("text/html")
} else {
var pastedContent = cb.getData(cb.types[0]) // get whatever it has
}
// do something with pastedContent
})