[]Laya下怎么实现复制

用了ClipboardJS也无法复制,原生JS也无法实现复制粘贴
var clipboard = new ClipboardJS('.copyContent',{text:str});
clipboard.on('success', function(e) {
alert("复制成功!");
e.clearSelection();
});
clipboard.on('error', function(e) {
console.log("复制失败!",e);
});
已邀请:

Aar0n

赞同来自:

这个就是用原生用法,无法实现就再查资料,看看用法对不对。

Life | Growing up

赞同来自:

你用
Laya.Browser.document.body.appendChild();
 DOM方式可以用ClipboardJS  但是如果你的按钮是个UI组件 就没法了 这是硬伤  想了N多办法都不行 因为浏览器copy机制 你必须点击按钮一下才能复制  哪怕你UI组件按钮设置点击事件 来模拟自动触发一次dom按钮click事件都不行 必须要亲自点在dom按钮上才行

sword2015

赞同来自:

通过嵌入网页的形式可以解决的,在需要复制的地方做个网页,嵌入到对应的位置,经过测试们可以解决复制问题,就是有点麻烦

sword2015

赞同来自:

如如网页部分
 
<!-- 1. Define some markup -->
<div>hello world</div>
<button class="btn" data-clipboard-action="copy" data-clipboard-target="div">Copy</button> 
<!-- 2. Include library -->
<script src="../src/Frame/ThirdLibs/clipboard.min.js"></script> 
<!-- 3. Instantiate clipboard -->
<script>
var clipboard = new ClipboardJS('.btn'); 
clipboard.on('success', function(e) {
console.log(e);
}); 
clipboard.on('error', function(e) {
console.log(e);
});
</script>
 
 
 
 
代码中使用
 
var pt=this.lbtn.localToGlobal(new Laya.Point(this.lbtn.x,this.lbtn.y));
pt.x -=this.lbtn.width /2;
pt.y -=120;
var gd=GameData.userData;
this.yqm.text=gd.invCode;
this.dt.text="邀请次数 "+gd.invFriends+"/99"
var iframe = Browser.document.createElement("iframe");
iframe.style.position ="absolute";//设置布局定位。这个不能少。
iframe.style.zIndex = 100;//设置层级
iframe.style.left =pt.x+"px";
iframe.style.top =pt.y+"px";
iframe.src = "target-div.html";
Browser.document.getElementById("layaContainer").appendChild(iframe);
 

要回复问题请先

商务合作
商务合作