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

发布于 2024-11-28 06:55:47 字数 209 浏览 1 评论 0原文

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

我知道 Flash 的解决方法。我想在 JavaScript 中做到这一点。

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蝶舞 2024-12-05 06:55:47

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

Flash 有解决方法,但它们并不是最好的。

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.

吐个泡泡 2024-12-05 06:55:47

不知道这是否有效,但谷歌搜索产生了:

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/帖子/show/2914

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

帅气称霸 2024-12-05 06:55:47

可行的跨浏览器方法(不包括 iOS)是使用 外部接口setClipboard
因此,您将拥有一个 swf、flash 文件,它仅侦听您从 Javascript 调用的函数来设置剪贴板。

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.

纵山崖 2024-12-05 06:55:47

对于非 IE 浏览器,您很可能必须使用 Flash 解决方案。然而,对于 IE,此方法非常有效:

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

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文