zClip不起作用

时间:2014-08-29 01:18:08

标签: jquery zclip

这是剪辑复制的更新代码

 <script src="jquery-1.8.0.min.js" type="text/javascript"></script>
 <script type="text/javascript" src="http://www.steamdev.com/zclip/js/jquery.zclip.min.js"></script>
身体部分

  <div>
    <input type="text" id="txtEmbedLink" />
    <button id="btnCopyClipboard">
        copy</button>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        $('#btnCopyClipboard').zclip({
            path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
            copy: $('#txtEmbedLink').val(),
            beforeCopy: function () {
                alert('before copy');
            },
            copy: function () {
                alert('copy');
                return $('#txtEmbedLink').val();
                            },
            afterCopy: function () {
                alert('after copy');
            }
        });
    });

问题是当我点击按钮时,就在复制正确之前,复制后没有任何内容,(猜测问题是复制功能:复制中的警报命令正确运行)

2 个答案:

答案 0 :(得分:1)

我找到了解决方案,修改你的代码,因为jsfiddle与本地代码不同

附有jsfiddle http://jsfiddle.net/sxeCM/101/

主要问题是网络中已经提到的动态值,并将其置于dom准备状态而非按钮点击

$(document).ready(function () {
    $('#btnCopyClipboard').zclip({
        path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf', //this remain as the one you had
        copy:function(){return $('#txtEmbedLink').val();} //change this to be the clientid
    });
});

更新回答:

检查此http://jsfiddle.net/sxeCM/102/

  $(document).ready(function () {
        $('#btnCopyClipboard').zclip({
            path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
            copy:function(){return $('#txtEmbedLink').val();},
            beforeCopy: function () {
              console.log("test");
            },
            afterCopy: function () {
                alert('after copy');
            }
        });
    });

在这个jsfiddle中测试过,我发现beforecopy中的警报最终会导致一个未知的故障,即zclip没有复制文本输入,而不是使用alert,我将其更改为console.log,这表明复制工作,所以如果你想测试,为什么不顺便用console.log("before copy")?替换你的警报,路径应该保持原来的路径,不要使用样本路径

答案 1 :(得分:0)

我不知道你是否解决了这个问题,我找了很长时间的原因,可能也适合你。

我的问题是我的附件元素还没准备好。所以函数&#34; 是(:可见)&#34;总是&#34; false &#34;, width offsetWidth 总是0.你可以尝试为zclip attach添加setTimeout。喜欢

setTimeout(function(){
    $('attchElement').zclip({
        path: 'ZeroClipboard.swf',
        copy: $('textarea').val()
    });
},500);