js复制网页上的内容到剪切板

  js复制网页上的内容到剪切板
2023-07-17 测试,原来的代码已经没用了,现用下面的代码,在firefox和edge上本地测试成功,放服务器上不成功,网上搜索说是服务器上的话要在https下才行的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>

 


原来的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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("已成功复制文本.");
    }
}

  

posted @   牛腩  阅读(143)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示