我从Intercept paste event in Javascript获得了以下代码。
我需要在它粘贴之前得到它,否则我会失去" \ n"我需要保存的字符。
拦截具有id的一个元素的剪贴板数据非常有用。我需要它来处理所有输入元素。当我尝试使用jQuery来获取输入元素时。
感谢任何帮助。
var paster = function () {
var myElement = document.getElementByTagName('pasteElement');
myElement.onpaste = function(e) {
var pastedText = undefined;
if (window.clipboardData && window.clipboardData.getData) { // IE
pastedText = window.clipboardData.getData('Text');
} else if (e.clipboardData && e.clipboardData.getData) {
pastedText = e.clipboardData.getData('text/plain');
}
processExcel(pastedText); // Process and handle text...
return false; // Prevent the default handler from running.
};
}
答案 0 :(得分:11)
只需在文档中添加paste
事件监听器即可。
document.addEventListener("paste", function (e) {
console.log(e.target.id);
var pastedText = undefined;
if (window.clipboardData && window.clipboardData.getData) { // IE
pastedText = window.clipboardData.getData('Text');
} else if (e.clipboardData && e.clipboardData.getData) {
pastedText = e.clipboardData.getData('text/plain');
}
e.preventDefault();
e.target.value = "You just pasted '" + pastedText + "'";
return false;
});
答案 1 :(得分:3)
nmaier说了什么,但您还需要检查原始事件。
document.addEventListener("paste", function (e) {
console.log(e.target.id);
var pastedText = undefined;
if (window.clipboardData && window.clipboardData.getData) { // IE
pastedText = window.clipboardData.getData('Text');
} else {
var clipboardData = (e.originalEvent || e).clipboardData;
if (clipboardData && clipboardData.getData) {
pastedText = clipboardData.getData('text/plain');
}
e.preventDefault();
e.target.value = "You just pasted '" + pastedText + "'";
return false;
}
});
此外,您应该只将事件侦听器添加到元素中,而不是整个文档。