环境:jquery3.5.1 + clipboard.js2.0.6
今天在使用Clipboard插件程序的时候,结果给我报错如下:
jquery.js:4055 Uncaught TypeError: Illegal constructor
at HTMLDocument.<anonymous> (index.html:25)
at mightThrow (jquery.js:3762)
at process (jquery.js:3830)
中文翻译
jquery.js:4055 未捕获的TypeError:非法构造函数
原因:
一般报错的这个错误的原因是:Clipboard 不是一个构造函数。如果Clipboard 为undefined 或者 null 或者其他类型,都会报这个错误。 最常见的原因就是在引用包的时候没有正确引用。
解决方法
第一种方法:改代码
由于我引入的是目前最新版本的 clipboard.js2.0.6 ,有可能新版本已经不能再以“new Clipboard ”的方式出现了。
于是:我去查看了一下源码,发现它定义的名字不是 Clipboard 而是 ClipboardJS,我只需要改一下名字就可以了。
最终改成如下:
<script>
$(document).ready(function(){
var clipboard = new ClipboardJS('#copy_btn');
clipboard.on('success', function(e) {
alert("微信号 : 15202070000 复制成功",1500);
e.clearSelection();
console.log(e.clearSelection);
});
});
</script>
第二种方法:换版本
经过我的测试,如果你不想改代码的情况下,只需要更换 clipboard.js 的版本即可!我为了想要显著效果,我直接爆力操作,把它换成最低版本,具体如下:
将
clipboard.js2.0.6
更换为
clipboard.js1.6.1
恢复正常。