这是剪辑复制的更新代码
<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');
}
});
});
问题是当我点击按钮时,就在复制正确之前,复制后没有任何内容,(猜测问题是复制功能:复制中的警报命令正确运行)
答案 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);