Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理整个应用程序级别的复制事件,Angular9_Javascript_Angular - Fatal编程技术网

Javascript 处理整个应用程序级别的复制事件,Angular9

Javascript 处理整个应用程序级别的复制事件,Angular9,javascript,angular,Javascript,Angular,我正在开发Angular9应用程序。在某些情况下,当使用双击页面任何部分上的任何文本/标签并进行复制时,默认情况下,Chrome会在复制的文本中添加一些不可打印的字符 所以我认为,如果有一些全局复制事件服务,我可以将其注入主app.module和onCopy中,我可以从复制的文本中替换不可打印的文本 请告诉我怎样才能做到这一点。在javascript中,我发现了如下内容: document.addEventListener('copy', (event) => { console.

我正在开发Angular9应用程序。在某些情况下,当使用双击页面任何部分上的任何文本/标签并进行复制时,默认情况下,Chrome会在复制的文本中添加一些不可打印的字符

所以我认为,如果有一些全局复制事件服务,我可以将其注入主app.module和onCopy中,我可以从复制的文本中替换不可打印的文本

请告诉我怎样才能做到这一点。在javascript中,我发现了如下内容:

document.addEventListener('copy', (event) => {
    console.log('copy action initiated')
});
使用Rxjs

const source$ = fromEvent(document, 'copy');
现在就订阅吧

let subscription = source$.subscribe (copy => 
{
const selection = document.getSelection();
event.clipboardData.setData('text/plain', selection.toString().toUpperCase());
event.preventDefault();

console.log(copy) 
});

还有,别忘了取消您(即Ngondestory)中的订阅。

如何获取复制的文本,复制只是事件事件事件是一个对象。您可以在里面找到复制的文本。已更新!您必须检索所选内容并更新剪贴板数据。复制只是当用户执行Ctrl+C或从上下文菜单中选择“复制”时触发的事件……但仅此而已。