【问题标题】:Simple copy paste function in JavaScriptJavaScript中的简单复制粘贴功能
【发布时间】:2011-04-07 09:57:15
【问题描述】:

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

【问题讨论】:

  • 复制粘贴文本;描述:当在textArea中选择一些文本,然后单击一个按钮进行复制,当转到另一个页面时,在textarea中右键单击并选择粘贴。

标签: javascript copy-paste


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    试试这个:

    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 中运行良好。

    希望对你有帮助。

    【讨论】:

    • 谢谢你的工作已经完成,但我想在所有浏览器中工作谢谢
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我认为最简单的方法(适用于所有浏览器)是观察用户按下的键,如果他按下 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
              }
      
          }
      

      【讨论】:

      • 如果用户在移动设备上怎么办?
      【解决方案5】:

      看看this MDN article

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

      document.execCommand("copy");
      

      如果您需要之前选择它:

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

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

      • 它适用于我在 Firefox 和 chrome 上,MDN 说它不适用于 safari 但我还没有测试过。

      【讨论】:

        【解决方案6】:

        您可以为此使用 ClipBoard API,

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

        现在您可以使用 .then 函数来做任何您想做的事情。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-25
          • 1970-01-01
          • 2017-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多