Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery/javascript复制到剪贴板_Javascript_Jquery_Zeroclipboard_Zclip - Fatal编程技术网

Jquery/javascript复制到剪贴板

Jquery/javascript复制到剪贴板,javascript,jquery,zeroclipboard,zclip,Javascript,Jquery,Zeroclipboard,Zclip,我用它把一些文本复制到剪贴板上,代码运行得很好。它使用flash创建了一个交叉浏览器解决方案,它基于,这似乎被认为是目前最好的工作解决方案 但是,我希望在我的页面上有多个复制到剪贴板按钮或链接。这里有一个例子 此代码有效,它将优惠券代码的文本复制到剪贴板,并打开一个带有正确链接的新页面。如何在其他链接上使用该代码,而不必为每个链接/id复制该代码 仅使用类 $(function() { $('.copy').zclip({ path: 'http://shopsheep.com/js/Z

我用它把一些文本复制到剪贴板上,代码运行得很好。它使用flash创建了一个交叉浏览器解决方案,它基于,这似乎被认为是目前最好的工作解决方案

但是,我希望在我的页面上有多个复制到剪贴板按钮或链接。这里有一个例子

此代码有效,它将优惠券代码的文本复制到剪贴板,并打开一个带有正确链接的新页面。如何在其他链接上使用该代码,而不必为每个链接/id复制该代码

仅使用类

$(function() {
$('.copy').zclip({
    path: 'http://shopsheep.com/js/ZeroClipboard.swf',
    copy: $(this).text(),
    afterCopy: function() {
        window.open($(this).attr('href'));
    }
});
})

不起作用:正如您在这里看到的: 如果删除afterCopy函数,您将看到$this.text将返回整个页面,而不仅仅是link标记之间的文本

做这样的事

$(function() {
$('a.copy', this).zclip({
    path: 'http://shopsheep.com/js/ZeroClipboard.swf',
    copy: $('a.copy', this).text(),

});
})

稍有改进,但返回链接标记之间的所有文本,如图所示。

更新:这不再有效,但我无法删除帖子

这似乎奏效了——也许有人能让它更优雅


事实上,我发现直接使用ZeroClipboard也很简单,我只是添加了这段代码,以防有人需要解决方案而不使用zclip

ZeroClipboard.setMoviePath('http://shopsheep.com/js/ZeroClipboard.swf');
$(document).ready(function() {
    $(".copy").each(function(i) {
        var clip = new ZeroClipboard.Client();
        var myTextToCopy = $(this).text();
        var myTextUrl = $(this).attr('href');
        clip.setText(myTextToCopy);
        clip.addEventListener('complete', function(client, text) {
            window.open(myTextUrl);
        });
        clip.glue($(this).attr("id"));
    });
});

这就是我们在Oodles技术中所遵循的

要使用“零拷贝到剪贴板”,您需要两个文件 1.ZeroClipboard.js 2.ZeroClipboard.swf 两个文件都可以从这里下载

<html>
<head>
    <script src =”../ZeroClipboard.js”></script>
    <script >
     // configure ZeroClipboard first
     ZeroClipboard.config( { moviePath : /path/swffile/ZeroClipboard.swf } );

     // initialize constructor
    var client = new ZeroClipboard($(“#elementid”));

    /* elementid is the element on which click , the data will copy  to clipboard. you can also pass multiple elements, it use jquery selector */
        </script>
<body>
<input type=”text”  id =”targetid”></button>
<button  id =”elementid” data-clipboard-text ='data for copy’ >copy</button>
</body>
</head>
<html>

当元素上的事件accur传递到ZeroClipboard的构造函数时,ZeroClipboard自动复制数据剪贴板文本属性的值

轻量级jQuery解决方案。。。重用类从任何元素复制文本

$(document).on('click', '.copytoclipboard', function(e) {
  if($("#holdtext").length < 1)
    $("body").append('<textarea id="holdtext" style="height:0;width:0;border:0;outline:0;resize:none;"></textarea>');
  $("#holdtext").val($(this).text()).select();
  document.execCommand("Copy");
});

我试过了,但没用。尝试用这段代码分叉JSFIDLE,您会发现它不起作用。我在一张桌子里试过zClip,但失败了,没有闪光。现在就直接使用ZeroClipboard。给那些决定在不留下评论的情况下否决一篇两年前的帖子的人。。。谢谢“我爱飞下来的人!”佐塔这是一篇有九年历史的帖子。事情变了。主权财富基金已经不在了,如果真的存在,它很可能会被封锁。与其在一篇九年前的帖子上发表意见,不如发表评论说这不再有效。我投票结束并删除这个问题,因为它所依据的代码已经不存在了。我不能删除我自己的答案
$(document).on('click', '.copytoclipboard', function(e) {
  if($("#holdtext").length < 1)
    $("body").append('<textarea id="holdtext" style="height:0;width:0;border:0;outline:0;resize:none;"></textarea>');
  $("#holdtext").val($(this).text()).select();
  document.execCommand("Copy");
});