MrM*_*vin 2 javascript clipboard firefox vaadin
以下是 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"))
});
Run Code Online (Sandbox Code Playgroud)
为了复制我使用的自定义文本navigator.clipboard.writeText(...)。
适用于Chrome和Edge,但不适用于Firefox。当我在该功能中使用它时,
Firefox 也被阻止了。document.execCommand("copy")executeJS(...)
onClick我想我需要向按钮添加一个功能。我怎样才能用 Vaadin 做到这一点?
copyBtn.getElement().executeJs("this.addEventListener('click', e => navigator.clipboard.writeText($0))", textToCopy);
Run Code Online (Sandbox Code Playgroud)
请注意,强烈建议不要使用字符串连接来动态构建传递给的字符串,executeJs因为存在跨站点脚本漏洞的风险。这就是为什么我的建议还使用$0引用单独传递的字符串。这类似于在 SQL 中使用准备好的语句。
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |