复制/设置剪切板内容 (浏览器/nativejs)

浏览器实现 :

1.<textarea id="content" cols="30" rows="10">

我是用户hcy
</textarea>
<input type="button" onclick="copyT()" value="点击复制代码">
<script>                
function copyT(){
var url=document.getElementById('content');
url.select();                    //官方介绍是选择密码域文本。亲测结果:可选中textarea/input文本
document.execCommand('Copy'); //execCommand方法执行一个对当前文档,当前选择或给出范围的命令。

}                      //自己理解:相当于一个自定义函数,只是定义的方法只能从文档有的方法中选取
</script>              //官方文档  https://www.w3cschool.cn/javascript/javascript-execcommand.html
                          //目前测了 Mac chrome/safari/ff/qq 暂时没问题,求补充

 

2.网上一些文档介绍的方法:

window.clipboardData.setData("Text",clipBoardContent);

此方法兼容性并不好,直接舍弃
 
3.通过ZeroClipboard.js实现
因为是看大神的总结,也不会比大神详细了,直接附上大神链接http://www.cnblogs.com/PeunZhang/p/3324727.html
 
 
nativejs实现

Android-写入剪贴板

function copyToClip(){
    var Context = plus.android.importClass("android.content.Context");
    var main = plus.android.runtimeMainActivity();
    var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);
    plus.android.invoke(clip,"setText","I'm copy from Native.js");
}

Android-读取剪贴板

 function copyToClip(){
        var Context = plus.android.importClass("android.content.Context");
        var main = plus.android.runtimeMainActivity();
        var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);
        return plus.android.invoke(clip,"getText");
    }

iOS:

var UIPasteboard  = plus.ios.importClass("UIPasteboard");
var generalPasteboard = UIPasteboard.generalPasteboard();
// 设置/获取文本内容:
generalPasteboard.setValueforPasteboardType("testValue", "public.utf8-plain-text");
var value = generalPasteboard.valueForPasteboardType("public.utf8-plain-text");

posted on 2017-08-22 13:31  yanggg  阅读(1459)  评论(0编辑  收藏  举报

导航