我已经意识到,当我尝试将文本从Angular应用程序复制/粘贴到任何文本编辑器软件(即Microsoft Word)时,所有文本都会丢失原始格式。
我以棱角材料网站为例:https://material.angular.io/
当我在Microsoft Word中复制文本和过去时:
那意味着粘贴的文本失去了中心对齐,颜色和字体类型。
有没有办法保持网站格式?我知道Angular Material所使用的字体与文本编辑器不同,但是还可以进行其他操作(即对齐,颜色等)。
我已经开始使用Angular 8 + Angular Material进行项目,并且遇到了相同的问题。
答案 0 :(得分:1)
好吧,您不太可能直接执行复制/粘贴操作来完成您所请求的操作。
例如,从MS Word复制并粘贴,您将得到Rich Text
,其中所有格式都是数据有效载荷的一部分。当您将其复制到剪贴板时,所有额外的样式元数据都会与文本一起出现。如果将数据粘贴到像Wordpress的Admin这样的富文本编辑器(而不是直接的text input
)中,该编辑器包会将看不到的文本元数据转换为等效的HTML样式。
但是,当您从HTML(在浏览器中)进行复制时,所得到的只是文本,而没有所有“丰富”格式。发生这种情况是因为浏览器使用外部上下文,例如DOM
位置,tag
类型和CSS
来将HTML内容设置为呈现给您的外观。
有多个适用于Chrome和Firefox的浏览器插件,它们将拦截您的复制请求,创建格式,然后将其粘贴到剪贴板。只需向Google提出建议即可。
不幸的是,这更加复杂。您将需要编写代码来执行以下操作(此answer有一个很好的示例):
将该内容转换为富文本格式。上面的示例只是复制HTML,但不会被外部CSS应用样式。 Quill MIGHT 之类的程序包使您可以选择撤回富文本。
将转换后的文本复制到用户的本地剪贴板。您不应该劫持浏览器命令来执行此操作,这就是为什么您经常看到“复制到剪贴板”按钮来执行此操作的原因。您可以在大多数现代浏览器中使用Clipboard API将内容移动到用户的剪贴板。