如何在不使用插件的情况下在Vaadin中实现文本复制到剪贴板
简单实现文本复制功能:避开复杂组件的实用方案
我之前花了大量时间尝试让各种目录组件正常工作,结果把原本简单的文本复制需求搞得复杂又难用。最后索性换了思路,在项目中引入了一段JavaScript函数,用非常直接的方式就实现了需求。
这个方法和其他方案一样,需要由你项目里的其他组件来触发(比如按钮点击、菜单选择之类的,触发方式完全可以根据自己的需求来选)。下面是具体的实现代码,希望能帮大家节省不必要的折腾时间:
void copyText(String text){ Page page = UI.getCurrent().getPage(); page.executeJavaScript( "var el = document.createElement('textarea');" + "el.value = $0;" + "el.setAttribute('readonly', '');" + "el.style = {" + " position: 'absolute'," + " left: '-9999px'" + "};" + "document.body.appendChild(el);" + "el.select();" + "document.execCommand('copy');" + "document.body.removeChild(el);", text); }
内容的提问来源于stack exchange,提问作者LanDanois
相关产品推荐
相关产品推荐

