Copy and paste the selected text to the clipboard

2019-02-16 03:38发布

问题:

I'm building a custom right-click menu for my system and I need to know how can I make a JavaScript function to copy the selected text, basically 100% like the original right-click menu does.

I'm aware of the Flash work-arounds. I want to do this in JavaScript.

Every answer I've seen so far is only a half-answer because none of them explains how to make a copy button for the selected text - all what they do is copy a pre-defined text or a text from a textbox.

回答1:

Modern Day Browsers block access to the clipboard. The user has to have the security setting correct.

There are flash work-arounds, but they are not the best.



回答2:

For non-IE browsers you will most likely have to use a flash solution. For IE, however, this method works perfectly:

function copyToClipboard(s) {           //only works in IE :(
    if (window.clipboardData && clipboardData.setData) {
        clipboardData.setData('text', s);
    }
}


回答3:

no idea if this will work, but a google search yielded:

function getSel(){
  var w=window,d=document,gS='getSelection';
  return (''+(w[gS]?w[gS]():d[gS]?d[gS]):d.selection.createRange().text)).replace(/(^\s+|\s+$)/g,'');
}

http://snippets.dzone.com/posts/show/2914



回答4:

A workable cross-browser approach (minus iOS) would be to use ExternalInterface and setClipboard. So you would have a swf, flash file, that only listens to a function you call from Javascript to set the clipBoard.