页面上有一个按钮,可使用代码将文本复制到剪贴板:
export class ClipboardService {
static copyToClipboard(toCopy: string) : void {
document.addEventListener('copy', (e : ClipboardEvent) => {
e.clipboardData.setData('text/plain', toCopy);
e.preventDefault();
});
document.execCommand('copy');
}
}
但是使用后,此代码Ctrl+C
不起作用。我需要removeEventListener
之类的东西:
export class ClipboardService {
static copyToClipboard(toCopy: string) : void {
document.addEventListener('copy', (e : ClipboardEvent) => {
e.clipboardData.setData('text/plain', toCopy);
e.preventDefault();
});
document.execCommand('copy');
document.removeEventListener('copy', (e : ClipboardEvent) => {
e.clipboardData.??? // I stuck in this place.
});
}
}
从特定字段复制文本时,如何回到剪贴板的标准行为?
答案 0 :(得分:1)
问题是您试图通过再次编写函数来删除该函数。 在JS中,即使使用完全相同的代码,两个函数仍然是不同的函数。
因此,您需要引用该函数才能在两个调用中使用它:
export class ClipboardService {
static copyToClipboard(toCopy: string) : void {
const create_copy = (e : ClipboardEvent) => {
e.clipboardData.setData('text/plain', toCopy);
e.preventDefault();
};
document.addEventListener('copy', create_copy );
document.execCommand('copy');
document.removeEventListener('copy', create_copy );
}
}