js复制网页上的内容到剪切板
js复制网页上的内容到剪切板
2023-07-17 测试,原来的代码已经没用了,现用下面的代码,在firefox和edge上本地测试成功,放服务器上不成功,网上搜索说是服务器上的话要在https下才行的
function aaa() {
var txt = $('#hfDesc').val();
navigator.clipboard.writeText(txt).then(
() => {
/* clipboard successfully set */
alert('复制成功');
},
() => {
/* clipboard write failed */
alert('复制失败');
},
);
}
用clipboard.min.js,下载在 http://www.niunan.net/js/clipboard.min.js
<script src="/js/clipboard.min.js"></script>
<script>
function aaa() {
var txt = $('#hfDesc').val();
var clipboard = new ClipboardJS('#btnCopy', {
text: function (trigger) {
return txt;
}
});
clipboard.on('success', function (e) {
alert('复制成功');
});
}
</script>
原来的代码:
function copyToClipboard(txt) {
if (window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
alert("已成功复制文本.");
} else if (navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");
}
var clip = Components.classes['@@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
var trans = Components.classes['@@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData("text/unicode", str, copytext.length * 2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip) return false;
clip.setData(trans, null, clipid.kGlobalClipboard);
alert("已成功复制文本.");
}
}
撸码:复制、粘贴,拿起键盘就是“干”!!!

浙公网安备 33010602011771号