Uncaught TypeError: Illegal constructor 原因与解决方法

环境: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:非法构造函数

Uncaught TypeError: Illegal constructor

 

原因:

一般报错的这个错误的原因是:Clipboard 不是一个构造函数。如果Clipboard 为undefined 或者 null 或者其他类型,都会报这个错误。 最常见的原因就是在引用包的时候没有正确引用。

 

解决方法

 

第一种方法:改代码

 

我按照上面的原因去看了一下报错的位置,如下图:new Clipboard

 

由于我引入的是目前最新版本的 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

恢复正常。

付杰
  • ¥ 498.0元
  • 市场价:498.0元
  • ¥ 198.0元
  • 市场价:298.0元
  • ¥ 89.0元
  • 市场价:129.0元
  • ¥ 498.0元
  • 市场价:598.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: