检测剪贴板中gmail的换行(角度)



我试图允许用户从gmail粘贴到字段中,并检测换行符。它不需要是一个文本区域,我只想检测换行符。

问题是,当用户粘贴以下内容时。。。剪贴板似乎没有检测到中断(即使用户在gmail中点击了回车键(

Item 1 
Item 2 
Item 3

要检测到它,用户似乎必须点击回车两次。。。如下所示:

Item 1
Item 2
Item 3

有没有办法从gmail中检测换行符?

下面似乎适用于记事本、收件箱和其他我复制的区域。

Stacklitz演示

组件:

<input type="text" placeholder="paste items here" (paste)="onPaste(i, $event, $event)">
<div *ngIf="itemArray.length > 0">
Item list:
</div>
<div *ngFor="let item of itemArray">
{{item}}
</div>

TS:

itemArray = [];
onPaste(i, event: ClipboardEvent, value) {
let clipboardData = event.clipboardData;
let pastedText = clipboardData.getData('text/plain').split("n");
pastedText.forEach(item => {
item = item.toString()
item = item.replace(/(rn|n|r|sr|r)/gm, "")
this.itemArray.push(item) 
})
}

我认为问题在于粘贴的文本有换行符,这些换行符只是回车符(\r(。这不会传输到输入字段中。看起来只是路过。我发现了一种方法,它使用一个文本区域来接管独立于\r\n或\r\n的换行符。然后使用textarea的input事件从中读取文本。因此它是剪贴板的一种代理。我知道这不是一个合适的解决方案,但可能会有所帮助。

我修改了你的斯塔克布利茨。

您可以使用<p>{{item}} </p>而不是{{item}}

<div *ngFor="let item of itemArray">
<p>{{item}} </p> 
</div>

stackBlitz应答

希望这会有所帮助。。。!

最新更新