复制/设置剪切板内容 (浏览器/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);
此方法兼容性并不好,直接舍弃
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");