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("已成功复制文本.");
            }
        }

  

posted @ 2023-07-17 12:27  牛腩  阅读(111)  评论(0编辑  收藏  举报