asp.net操作剪切板

来源:互联网 发布:上海银行信用卡淘宝 编辑:程序博客网 时间:2024/05/16 19:27

获取剪切板的类容:

 function getClipboard() {
            if (window.clipboardData) {
                return (window.clipboardData.getData('text'));
            }
            else {
                if (window.netscape) {
                    try {
                        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                        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");
                        clip.getData(trans, clip.kGlobalClipboard);
                        var str = new Object();
                        var len = new Object();
                        trans.getTransferData("text/unicode", str, len);
                    }
                    catch (e) {
                        alert(" 您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将 signed.applets.codebase_principal_support'设置为true'之后重试,相对路径为firefox根目录 /greprefs/all.js");
                        return null;
                    }
                    if (str) {
                        if (Components.interfaces.nsISupportsWString) {
                            str = str.value.QueryInterface(Components.interfaces.nsISupportsWString);
                        }
                        else {
                            if (Components.interfaces.nsISupportsString) {
                                str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
                            }
                            else {
                                str = null;
                            }
                        }
                    }
                    if (str) {
                        return (str.data.substring(0, len.value / 2));
                    }
                }
            }
            return null;
        }

设置剪切板方法一:

   function copy_clip(meintext) {
            if (window.clipboardData) {
                window.clipboardData.setData("Text", meintext);
            }
            else if (window.netscape) {
                netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
                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 = meintext;

                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(" 下面的信息复制到剪贴板 :/n/n" + meintext);
            return false;
        }

设置剪切板方法二:

   function copyToClipboard(txt) {
            if (window.clipboardData) {
                window.clipboardData.clearData();
                window.clipboardData.setData("Text", txt);
            } else if (navigator.userAgent.indexOf("Opera") != -1) {
                window.location = txt;
            } else if (window.netscape) {
                try {
                    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                } catch (e) {
                    alert("你使用的FF浏览器,复制功能被浏览器拒绝!/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);
            }
        }

在asp.net页面的应用:

<script type="text/javascript">
        document.body.oncopy = function() {
            setTimeout(function() {
                var text = getClipboard();
                if (text) {
                    text = text + "/r/n本篇文章来源于:" + location.href;
                    copyToClipboard(text);
                }
            }, 100)
        }
    </script>

原创粉丝点击