Javascript 剪贴板的 使用以及在mozilla下的兼容

来源:互联网 发布:sql server default 置 编辑:程序博客网 时间:2024/06/07 23:14

js实现复制内容到剪贴板的核心方法:window子对象clipboardData的一个方法:setData()

语法: clipboardData.setData(sDataFormat, sData)
参数:sDataFormat:要复制的内容的格式;sData:要复制的内容。
返回值:复制成功返回true;失败返回false。

function copyToClipboard(txt) {

        if (window.clipboardData) {
            window.clipboardData.clearData();
            window.clipboardData.setData("Text", txt);
            return true;
        }
        else if ($.browser.opera) {
            window.location = txt;
            return true;
        }
        else if ($.browser.mozilla) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");


            }
            catch (e) {
                alert("你的firefox安全限制限制您进行剪贴板操作,请在地址栏输入: about:config 将signed.applets.codebase_principal_support设置为true之后重试");
                return false;

            }

//火狐插件类操作

            var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
            if (!clip)
                return false;
            var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
            if (!trans)
                return false;
            trans.addDataFlavor('text/unicode');
            var len = {};
            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) //Should be clipid, RobertUn 080130
                return false;
            clip.setData(trans, null, clipid.kGlobalClipboard);
        }
        //return true;
        return false;
    }
0 0
原创粉丝点击