How to copy text to clipboard in Firefox 3.5?

后端 未结 4 766
孤独总比滥情好
孤独总比滥情好 2021-01-23 09:32

How can you copy text to clipboard using Javascript (or even nicer a jQuery function) without involving Flash?

I don\'t care about IE a

4条回答
  •  迷失自我
    2021-01-23 10:17

    Now that the problem is solved, I want to add some made-up JavaScript.

    • Configure Firefox as described in the accepted answer.

    Then use something like this (copied from the Mozilla resource):

    function copyToClipboard(text) {
    
    // ask for permission to access clipboard
    
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    } catch(e) {
        alert("Clipboard copying is not allowed. Set signed.applets.codebase_principal_support to 'true' in Mozilla Firefox.");
        return false;
    }
    
    // make a copy of the Unicode
    
    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
    if (!str) return false; // couldn't get string obj
    str.data = text; // unicode string?
    
    
    // add Unicode & HTML flavors to the transferable widget
    
    var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
    if (!trans) return false; //no transferable widget found
    
    trans.addDataFlavor("text/unicode");
    trans.setTransferData("text/unicode", str, text.length * 2); // *2 because it's unicode 
    
    
    // copy the transferable widget!
    
    var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
    if (!clipboard) return false; // couldn't get the clipboard
    
    clipboard.setData(trans, null, Components.interfaces.nsIClipboard.kGlobalClipboard);
    return true;
    
    }
    

提交回复
热议问题