首页 > 解决方案 > iframe 中的文本可以复制到剪贴板吗?

问题描述

在我的 React 应用程序中,我在遍历数组后显示卡片(因此理论上可以有n卡片)。

我希望在用户单击该卡时复制卡中显示的文本。然而,问题是反应应用程序是在 iframe 中呈现的。

当应用程序位于单个选项卡中时,复制功能有效。但是,当从 iframe 中尝试时,我遇到了这个错误:

Uncaught (in promise) DOMException: Disabled in this document by Feature Policy.

这与Google的这项政策变更有关。有没有办法让这个功能正常工作?

附加信息:在 iframe 中呈现的应用与父应用不共享同一个域

背景阅读链接:

标签: javascriptreactjsiframe

解决方案


如此处所述:

要在 iframe 中使用 API,您需要使用Permissions Policy启用它,该策略定义了一种机制,允许有选择地启用和禁用各种浏览器功能和 API。具体来说,您需要通过 或 中的一个或两个clipboard-readclipboard-write这取决于您的应用程序的需要。

<iframe src="index.html" allow="clipboard-read; clipboard-write"></iframe>

如果您只想能够将文本复制到剪贴板(即您不需要能够以编程方式读取它),那么您只需要clipboard-write权限:

<iframe src="index.html" allow="clipboard-write"></iframe>

推荐阅读