Copiar desde el portapapeles con JS

Es la función inversa a la de copiar al portapapeles de Windows.

function clipboardPaste() {
    if(window.clipboardData) {
        txt = window.clipboardData.getData('Text');
        return txt;
    }
    else if (window.netscape) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        }
        catch (e) {
            alert("Un script no puede Cortar / Copiar / Pegar automáticamente por razones de seguridad.\n"+
                  "Para hacerlo necesitas activar 'signed.applets.codebase_principal_support' en about:config'");
            return false;
        }
        var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(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");
        clip.getData(trans, clip.kGlobalClipboard);
        var str = new Object();
        var strLength = new Object();
        trans.getTransferData("text/unicode", str, strLength);
        if (str)
            str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
        if (str)
            pastetext = str.data.substring(0, strLength.value / 2);
        txt = pastetext;
        return txt;
    }
}

Comentarios