웹프로그래밍/Javascript
get only text by clipboard
jihun202
2020. 7. 8. 10:13
반응형
Copy & Paste 시에 텍스트만 가져오도록 처리 onpaste 이벤트에 걸면된다.
const getTextByPasteClipboard = (e) => {
e.preventDefault();
let text;
const clp = (e.originalEvent || e).clipboardData;
if (clp === undefined || clp === null) {
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
text = window.clipboardData.getData('text') || '';
if (text !== '') {
text = text.replace(/<[^>]*>/g, '');
if (window.getSelection) {
const newNode = document.createElement('span');
newNode.innerHTML = text;
window.getSelection().getRangeAt(0).insertNode(newNode);
} else {
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
document.selection.createRange().pasteHTML(text);
}
}
} else {
text = clp.getData('text/plain') || '';
if (text) {
text = text.replace(/<[^>]*>/g, '');
document.execCommand('insertText', false, text);
}
}
};
반응형