使用JavaScript将选中的文本复制并粘贴到剪贴板上

Copy and paste the selected text to the clipboard using JavaScript

本文关键字:剪贴板 复制 文本 JavaScript 使用      更新时间:2023-09-26

我正在为我的系统构建一个自定义右键菜单,我需要知道如何使JavaScript函数复制选中的文本,基本上100%像原来的右键菜单。

我知道Flash的变通方法。我想在JavaScript中实现。

到目前为止,我看到的每一个答案都只是半个答案,因为他们都没有解释如何为选定的文本制作复制按钮-他们所做的只是复制预定义的文本或文本框中的文本。

现代浏览器阻止访问剪贴板。用户必须有正确的安全设置。

有闪光灯的变通,但他们不是最好的。

对于非ie浏览器,您很可能必须使用flash解决方案。但是,对于IE,这种方法可以完美地工作:

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

不知道这是否有效,但谷歌搜索显示:

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

一个可行的跨浏览器方法(不包括iOS)是使用ExternalInterface和setClipboard。所以你会有一个swf, flash文件,它只监听你从Javascript调用的函数来设置clipBoard