ZeroClipboard.config is not a function 和 ZeroClipboard is not defined 错误解决

JSON 2016-10-25 14:41:38 11327

ZeroClipboard.config is not a function。

第二次出现这个错误了。上一次忘记怎么解决的,这次又遇到了,把问题阐述一下,方便查阅。

ZeroClipboard.config({
	moviePath: "/js/common/ZeroClipboard.swf",
	hoverClass: "btn-clipboard-hover"
})

这么去定义的时候,控制台出现这个错误,发现抛出ZeroClipboard.config is not a function。出现这个问题,我总结了一下,有2点原因:

  • 重复引用ZeroClipboard.js ,怎么排查?先看是否引入了2个,再看是否有js文件中已经包含了ZeroClipboard.js。
  • 版本问题。我现在遇到的是版本问题。

我的问题是,原来的代码是用version为1.3.5,ZeroClipboard v1.3.5  可以这么去用,而我项目中已经在cdn 上有这个ZeroClipboard.js ,那我为了高效的利用,直接用原来的,就出现这个问题了。后来发现以前用的是version是1.2.1,导致出了问题。

而低版本的配置应该是这么去用的。

new ZeroClipboard(so(".copy_btn"),{
	moviePath: "/js/common/ZeroClipboard.swf",
	hoverClass: "btn-clipboard-hover"
})

解决问题了。

咱们再说说 ZeroClipboard is not defined 这个是 ZeroClipboard  找不到。

其实解决方案就百度一下就知道了,我这里总结下解决途径和方案:

一、确定加载顺序,是否在ZeroClipboard.js 加载之前使用,解决调整好加载顺序,先加载ZeroClipboard.js。

二、使用require.js也会导致加载不到,这个时候解决方案有2种。

1.修改源码(下策)。

if (typeof define === "function" && define.amd) {
    define(function() {
        return ZeroClipboard;
    });
} else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
    module.exports = ZeroClipboard;
} else {
    window.ZeroClipboard = ZeroClipboard;
}

改成这样:

if (typeof define === "function" && define.amd) {
define(function() {
  return ZeroClipboard;
});
} else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
module.exports = ZeroClipboard;
}
//主要是这里
window.ZeroClipboard = ZeroClipboard;

如果你的源码是这样。

//......
"function" == typeof define && define.amd ? define(["require", "exports", "module"], function(a, b, c) {
        return t = c && c.id || null, p
    }) : "object" == typeof module && module && "object" == typeof module.exports && module.exports ? (u = module.id || null, module.exports = p) : window.ZeroClipboard = p

那么这是三元运算符(三目运算)表达方式,你也可以不用动它,直接在后面加上如下代码:

"function" == typeof define && define.amd ? define(["require", "exports", "module"], function(a, b, c) {
	return t = c && c.id || null, p
}) : "object" == typeof module && module && "object" == typeof module.exports && module.exports ? (u = module.id || null, module.exports = p) : window.ZeroClipboard = p;
//在后面加上这个就OK了。
window.ZeroClipboard = p;

2.增加代码(上策)

require.config({
    baseUrl: '',
    paths: {
        ZeroClipboard: "/common/ZeroClipboard.min"//定义ZeroClipboard
    }
});
require(['ZeroClipboard'], function (ZeroClipboard) {
    window['ZeroClipboard'] = ZeroClipboard;
	//or window.ZeroClipboard = ZeroClipboard;
});

因为引入后就变成私有,类似于封装一样,提供一个公共的访问方法。那就是给window。


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/184.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Spring 3.x 升级到Spring 4.x 注意事项步骤,错误解决方法
JS中 “is not defined” 如何判断defineddefinedundefined 的区别
火狐(Firefox )浏览器提示。此链接是不受信任的,站长用户的解决方案。SSL申请
for循环的 i++ ++i 的区别
Maven的MirrorRepository 的详细讲解
QQ互联登录,出现qzuser用户的原因及解决办法
document.domain解决跨域问题,详细讲解。
SOJSON 拓展服务器被DDos攻击了一晚上,是如何解决的?
Oracle与Mysql删除重复的数据,OracleMysql数据去重复
Elasticsearch教程(四) elasticsearch head 插件安装使用
最新文章
Java赋值运算符 13
XML内部实体和外部实体 180
Java面向对象编程概念 143
PHP回显语句 91
Linux—文件树 116
C语言while循环和do while循环 131
Python元组剖析 200
MySQL触发器教程 314
sql使用布尔运算符和关系运算符 258
C语言的变量和常量 296
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 682077
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674719
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 602168
免费天气API,天气JSON API,不限次数获取十五天的天气预报 577303
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 552926
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509367
Elasticsearch教程(四) elasticsearch head 插件安装和使用 480022
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 264583
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244254
Elasticsearch教程(一),全程直播(小白级别) 225569
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...