在具有隐藏输入字段的Javascript中复制到剪贴板

时间:2011-03-09 22:54:15

标签: javascript

我有一个显示用户名称的span,以及一个包含用户用户名的隐藏输入框。输入框位于UI的跨度正下方,隐藏了可见性

<span> My Name </span>
<input type = "text" class = "hidden" value = "MyUserName"> 

我想要的是当用户点击可见范围并按Ctrl + C时,我希望输入框的值被复制到剪贴板上。 (在这种情况下是MyUserName)。有什么办法可以在Javascript中做到这一点吗?

3 个答案:

答案 0 :(得分:2)

试试这个

<span onClick="CopyToClipboard()"> My Name </span>
<input type = "text" id="test" class = "hidden" value = "MyUserName">

然后是一个脚本

<script type="text/javascript">

function CopyToClipboard()

{

document.getElementById('test').focus();

document.getElementById('test').select(); 

}

</script>

答案 1 :(得分:0)

看看这里:Handling Keyboard Shortcuts in Javascript。作者创建了一个Javascript函数库,可以轻松地完成您的要求。

使用此脚本库,您可以执行以下操作:

shortcut.add("Ctrl+C",function() {
    //Do something here
});

答案 2 :(得分:0)

我有这个方便的功能适用于IE和Firefox(请求许可)。对于其他人,虽然你需要zeroclipboard闪存控制。

当它工作时,它会显示一个文本聚焦的提示,这样用户就可以按Ctrl + c数据

function copyText(text) {
    if (window.clipboardData) { // Internet Explorer
      window.clipboardData.setData("Text", ""+ text);  
    } else if (window.netscape) { // Mozilla
      try {
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
        var gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
        gClipboardHelper.copyString(text);
      } catch(e) {
          return prompt("Ctrl+C this text : ", text);
      }
    } else {
      return prompt("Ctrl+C this text : ", text);
    }
    return false;
  }