问题描述:项目使用了ZeroClipboard.swf和jquery.zclip.min.js进行复制粘贴板
// 复制粘贴
$(element).zclip({
path:'static/js/plugins/copy/ZeroClipboard.swf',
copy: function(){
return yourData
},
beforeCopy:function(){
//some code
if(!yourData){
alert('无内容可粘贴')
}
},
afterCopy:function(){
alert('复制成功');
}
});
然而遇到了火狐浏览器和ie浏览器不能复制的情况,谷歌上正常,度娘之后才知道,谷歌内置了flash插件,但是其他浏览器没有(作为程序员,深爱谷歌的原因之一),于是百度了判断浏览器是否安装flash的方法,但是也是一堆坑,经过细化之后,遇到的问题都通过注释写出来了,放心去用吧
// 针对浏览器未安装flash的提示
$('#zclip-ZeroClipboardMovie_1').on('click',function(){
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash')); //先判断是否有flash插件
if (window.clipboardData) {//如果是IE浏览器,直接用ie原生的复制粘贴功能
window.clipboardData.setData("Text",copyFilterNum);//设置数据
alert("复制成功");
}
} catch(exception) { //没有flash的处理
hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
if(confirm("检测到浏览器未安装flash,无法复制,现在安装?")) {
window.location.href = "http://get.adobe.com/cn/flashplayer/";
}
}
})