我正在尝试编写一个JavaScript函数,在粘贴之前编辑剪贴板中的内容。目前,我已经通过JQuery将事件“paste”绑定到函数。
$(this.elementDoc).bind('paste', function(event){
self.OnPaste(event);
});
但这并不重要。现在我想从剪贴板获取数据,但我找不到方法。我会很高兴得到任何提示。
我正在尝试编写一个JavaScript函数,在粘贴之前编辑剪贴板中的内容。目前,我已经通过JQuery将事件“paste”绑定到函数。
$(this.elementDoc).bind('paste', function(event){
self.OnPaste(event);
});
但这并不重要。现在我想从剪贴板获取数据,但我找不到方法。我会很高兴得到任何提示。
clipboardData
可以包含多种不同的数据格式。有可能一个程序会在剪贴板中添加多个格式的数据。要查看这些格式,可以查看 clipboardData.types
。types
中列出的第一个类型将是 MIME 类型 "text/plain"。如果你从浏览器中复制文本,则列表中将会有两种类型:"text/plain" 和 "text/html"。根据你传递给 getData
的字符串不同,你可以获取纯文本或者 HTML。似乎 "text" 是 "text/plain" 的简写,"url" 是 "text/uri-list" 的简写。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
})
如果需要了解如何使用clipboardData.getData
,请参阅这个复杂的规范文档。
//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);