Javascript 在FireFox中使用Vaadin按钮复制到剪贴板

Javascript 在FireFox中使用Vaadin按钮复制到剪贴板,javascript,firefox,vaadin,clipboard,Javascript,Firefox,Vaadin,Clipboard,以下是Vaadin按钮的代码: String textToCopy = "COPY ME!!!"; Button copyBtn = new Button(""); copyBtn.setButtonLayout(false, new IconSelf(VaadinIcon.COPY_O), "Copy")); copyBtn.addClickListener(event -> { getUI().get().

以下是Vaadin按钮的代码:

String textToCopy = "COPY ME!!!";
Button copyBtn = new Button("");
copyBtn.setButtonLayout(false, new IconSelf(VaadinIcon.COPY_O), "Copy"));
copyBtn.addClickListener(event -> {
          getUI().get().getPage().executeJs("navigator.clipboard.writeText(`" + textToCopy + "`);");
    Notification.show(getTranslation(PAGESTRING + "attributestoclipboard"))
});
为了复制我的自定义文本,我使用了
navigator.clipboard.writeText(…)

适用于Chrome和Edge,但不适用于Firefox。
当我在
executeJS(…)
函数中使用它时,Firefox也阻止了
document.execCommand(“copy”)

我想我需要在按钮上添加一个
onClick
功能。我怎么能用瓦丁做这个

copyBtn.getElement().executeJs("this.addEventListener('click', e => navigator.clipboard.writeText($0))", textToCopy);
请注意,由于存在跨站点脚本漏洞的风险,强烈建议不要使用字符串串联来动态构建传递给
executeJs
的字符串。这就是为什么我的建议还使用
$0
引用单独传递的字符串。这类似于在SQL中使用准备好的语句

请注意,由于存在跨站点脚本漏洞的风险,强烈建议不要使用字符串串联来动态构建传递给
executeJs
的字符串。这就是为什么我的建议还使用
$0
引用单独传递的字符串。这类似于在SQL中使用准备好的语句