针对鸡西中小企业的网站建设,网页制作,网站优化(seo/sem),网站改版等业务定制最佳解决方案的工作室.QQ:331148(7*24H免费咨询)
本页定位

在Require.js中加入Clipboard.js的报错问题

臭保安👮4.33kA+A-
在Require.js中加入Clipboard.js的报错问题

鸡西网站制作在集成支付插件的点击复制功能时发现,在Require.js中直接加入Clipboard.js就使用复制功能的话,会报错。
折腾几次报错情况大概有以下两种:

Clipboard is not defined
或者
clipboard.on is not defined

网上找的资料解释报错原因大概是:这是因为在页面调用require.js时,Clipboard.js没有把Clipboard定义为为全局变量。,也因为Clipboard.js非规范的模块,所以,鸡西网站设计要做的就是用require.config()方法,定义它们的一些特征。相关代码如下:

首先,需要在Require.js引入Clipboard.js后添加require.config()方法

require.config({
	baseUrl: APP.STATIC + '/static/js',
	urlArgs: 'ver=' + APP.VERSION,
	paths: {
		'jquery'                    : 'libs/jquery.min',
		//......
		'clipboard'                 : 'libs/clipboard.min',//引入clipboard.js
		'erphpdown'                 : 'erphpdown'//此文件中包含点击复制的初始化代码
	},
	shim: {
		'clipboard': {
			exports: 'ClipboardJS',//重新定义点击复制的函数名
 			deps: ['jquery']//需要依赖jquery
      }
    }
})

然后修改erphpdown.js,找到clipboard的代码修改成:

require(['clipboard'], function (ClipboardJS){//主要是这一句
		var clipboard = new ClipboardJS(".erphpdown-copy");
		clipboard.on('success', function(e) {
			$(e.trigger).text("已复制");
	});
});

全部评论: 0
登录没有账号 切换注册

邮箱或名字

忘记密码 ?

用第三方帐号直接登录
注册已有账号 切换登录

请真实填写

注意:邮箱涉及账号安全,也是您在完善资料之前唯一的登陆凭证,请务必填写真实的常用邮箱