如何从输入框复制到剪贴板?

时间:2015-04-23 17:00:33

标签: javascript jquery html

我正在用html,php,javascript等建立一个网站。在那里我想添加一个特定的按钮,点击按钮后,输入框中的单词应该被复制到剪贴板中。我尝试使用Zeroclipboard,但我不能。

我使用了以下代码,并将jquery.zclip.jsjquery-1.8.0.min.js添加到同一目录中。欢迎任何建议。

<head>    
    <script type="text/javascript" src="jquery-1.8.0.min.js"></script> 
    <script src="jquery.zclip.js"></script> 
    <style> 
        #dynamic { font-size: 15px; height: 28px; width: 357px; } 
    </style> 
    <script> 
        $(document).ready(function(){ 
            $("a#copy-dynamic").zclip({ 
                      path:"ZeroClipboard.swf", 
                      copy:function(){return $("input#dynamic").val();} 
            }); 
        }); 
    </script> 
</head>
<body> 
    <input type="text" id="dynamic" value="Copy me !!" /> 
    <a href="#copy" id="copy-dynamic">Copy Now</a> 
</body>

1 个答案:

答案 0 :(得分:1)

我最近不得不处理ZeroClipboard;文档不是最好的。

首先,您需要将源脚本添加到html文档的头部:

<script src="https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.2.0/ZeroClipboard.js"></script>

我使用了CDN,但如果您有本地副本,我确定它可以正常工作。

然后在你的javascript中,在全球范围内:

ZeroClipboard.config( { swfPath: "whateverpath/ZeroClipboard.swf" } );

然后,您需要将swf绑定到要用于触发复制的元素:

var copyButton = document.getElementById('thingThatCopies');
var copyclient = new ZeroClipboard(copyButton); //can be array

它应该可以在那里工作,但是如果你想添加用户通知,你可以使用一些事件:

copyclient.on("ready", function(readyEvent) {
    //is ready
    copyclient.setText(window.location.href);
    //in this instance, set the text to copy to the url of the current page. You can set it to anything with this function
    copyclient.on("aftercopy", function(event) {
        //copied
        //this is the place to add a user notification
    }
}

希望这能为您提供足够的启动,使其适应您的项目。