检测浏览器是否安装flash,兼容各浏览器谷歌,火狐,ie各个版本包括ie8以下

 问题描述:项目使用了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/";
            }
        }
    })

猜你喜欢

转载自blog.csdn.net/weixin_40918145/article/details/84657717