JavaScript 中的简单复制粘贴功能

发布于 2024-10-30 19:19:23 字数 149 浏览 4 评论 0原文

如何在 JavaScript 中对文本进行简单的复制和粘贴?我想实现这一点:当我在 textarea 中选择一些文本时,我可以单击一个按钮来复制它,然后我可以转到另一个页面,右键单击另一个 textarea代码> 并选择粘贴。

How I can make simple copy and paste for text in JavaScript? I would like to achieve that when I select some text in a textarea, then I can click on a button to copy it, then I can go to another page right click in another textarea and choose paste.

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

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

发布评论

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

评论(6

瑕疵 2024-11-06 19:19:23

看看这个库: https://github.com/zeroclipboard/zeroclipboard

您无法访问JavaScript 中的剪贴板,这意味着 flash 或多或少是您唯一的选择。

Take a look at this library: https://github.com/zeroclipboard/zeroclipboard

You cannot access the clipboard in JavaScript, meaning flash is more or less your only option.

烟酒忠诚 2024-11-06 19:19:23

试试这个:

function copy() {
 if(window.clipboardData) {
   window.clipboardData.clearData();
   window.clipboardData.setData("Text", document.getElementById('txToCopy').value);
 } 
}

function paste() {
 if(window.clipboardData) {   
   document.getElementById('txToPaste').value = window.clipboardData.getData("Text");
 } 
}
<a href="javascript:copy();">Copy</a>
<br />
<input type="text" name="txToCopy" id ="txToCopy"/>
<br /><br />
<a href="javascript:paste();">Paste</a>
<br />
<input type="text" name="txToPaste" id="txToPaste"/>

这是一个简单的复制和粘贴功能。它在 IE 中运行良好。

我希望它对你有帮助。

Try this:

function copy() {
 if(window.clipboardData) {
   window.clipboardData.clearData();
   window.clipboardData.setData("Text", document.getElementById('txToCopy').value);
 } 
}

function paste() {
 if(window.clipboardData) {   
   document.getElementById('txToPaste').value = window.clipboardData.getData("Text");
 } 
}
<a href="javascript:copy();">Copy</a>
<br />
<input type="text" name="txToCopy" id ="txToCopy"/>
<br /><br />
<a href="javascript:paste();">Paste</a>
<br />
<input type="text" name="txToPaste" id="txToPaste"/>

It's a simple copy and paste function. Its working well in IE.

I hope it helps you.

风向决定发型 2024-11-06 19:19:23

假设您想获取用户键盘操作,您可能需要使用热键: https://github.com/jeresig /jquery.hotkeys

Assuming you want to fetch user keyboard actions, you probably want to use Hotkeys: https://github.com/jeresig/jquery.hotkeys

九厘米的零° 2024-11-06 19:19:23

我认为最简单的方法(并且在所有浏览器中工作)是观察用户按下的按键,如果他按下 CTRL+C,则将您想要复制的一些数据保存到某个变量中。

我的意思是这样的:

    var myClipboardVariable;

    document.onkeyup = function(e){

        if ((e.key == 'c') && e.ctrlKey){
            // save data (you want to copy) into variable
            myClipboardVariable = ....//some data
        }

        if ((e.key == 'v') && e.ctrlKey){
            // paste saved data
            .... paste your data from variable myClipboardVariable
        }

    }

I think easiest way (and working in all browsers) is to watch keys pressed by user and if he press CTRL+C, save some data you want to copy into some variable.

I mean something like this:

    var myClipboardVariable;

    document.onkeyup = function(e){

        if ((e.key == 'c') && e.ctrlKey){
            // save data (you want to copy) into variable
            myClipboardVariable = ....//some data
        }

        if ((e.key == 'v') && e.ctrlKey){
            // paste saved data
            .... paste your data from variable myClipboardVariable
        }

    }
痴骨ら 2024-11-06 19:19:23

请查看这篇 MDN 文章

如果您只想复制用户选择的文本,您可以这样做:

document.execCommand("copy");

如果您之前需要选择它:

document.getElementById('txToPaste').select();
  • 在我的情况下,此代码不起作用 - 事实证明 select() 不起作用适用于禁用输入。

  • 如果您从 onClick 事件侦听器运行它,则不需要任何特殊权限,如果您希望另一个事件触发副本,那么您就有点麻烦了。

  • 它适用于我的 Firefox 和 Chrome,MDN 说它不适用于 Safari,但我还没有测试过。

have a look at this MDN article.

If you just want to copy user selected text you can do:

document.execCommand("copy");

if you need to select it previously:

document.getElementById('txToPaste').select();
  • In my case this code didn't work - it turns out select() don't work for disabled inputs.

  • you don't need any special permissions if you run it from an onClick event listener, if you want another event to trigger the copy you are a bit in trubbles.

  • it works for me on Firefox and chrome, MDN says it won't work for safari but I haven't tested it.

暮年 2024-11-06 19:19:23

您可以使用 ClipBoard API 来实现此目的,

//copy
navigator.clipboard.writeText("yuuhhhh");
//paste ,this needs user permission 
navigator.clipboard.readText()

现在您可以使用 .then 函数来执行您想要的操作。

You can use ClipBoard API for this,

//copy
navigator.clipboard.writeText("yuuhhhh");
//paste ,this needs user permission 
navigator.clipboard.readText()

Now you can use .then function to do what ever you want.

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